0

scatter3如果使用以下命令,我已经准备好在“Matlab”中绘制这个矩阵

scatter3( F(:,[1]) , F(:,[2]) , F(:,[3]) , F(:,[4]) , F(:,[5]) )

(我基本上将F矩阵拆分为 5 个列向量)

F =

   52.5000   12.6000  288.0000   20.0000    1.0000
   52.5000    6.3000  408.0000   20.0000    1.0000
   52.5000    4.8000  467.0000   20.0000    1.0000
   52.5000    3.5000  559.0000   20.0000    1.0000
   52.5000    2.0000  730.0000   20.0000    1.0000
   52.5000    1.3000  902.0000   20.0000    1.0000
   26.2500   12.6000  203.0000   20.0000    2.0000
   26.2500    6.3000  288.0000   20.0000    2.0000
   26.2500    4.8000  332.0000   20.0000    2.0000
   26.2500    3.5000  389.0000   20.0000    2.0000
   26.2500    2.0000  516.0000   20.0000    2.0000
   26.2500    1.3000  637.0000   20.0000    2.0000
   10.0000   12.6000  125.0000   20.0000    3.0000
   10.0000    6.3000  177.0000   20.0000    3.0000
   10.0000    4.8000  204.0000   20.0000    3.0000
   10.0000    3.5000  240.0000   20.0000    3.0000
   10.0000    2.0000  318.0000   20.0000    3.0000
   10.0000    1.3000  392.0000   20.0000    3.0000
    5.0000   12.6000   88.0000   20.0000    4.0000
    5.0000    6.3000  125.0000   20.0000    4.0000
    5.0000    4.8000  144.0000   20.0000    4.0000
    5.0000    3.5000  169.0000   20.0000    4.0000
    5.0000    2.0000  224.0000   20.0000    4.0000
    5.0000    1.3000  277.0000   20.0000    4.0000
    2.0000   12.6000   55.0000   20.0000    5.0000
    2.0000    6.3000   78.0000   20.0000    5.0000
    2.0000    4.8000   90.0000   20.0000    5.0000
    2.0000    3.5000  106.0000   20.0000    5.0000
    2.0000    2.0000  141.0000   20.0000    5.0000
    2.0000    1.3000  175.0000   20.0000    5.0000
    1.0000    6.3000   55.0000   20.0000    6.0000
    1.0000    4.8000   63.0000   20.0000    6.0000
    1.0000    3.5000   75.0000   20.0000    6.0000
    1.0000    2.0000   99.0000   20.0000    6.0000
    1.0000    1.3000  123.0000   20.0000    6.0000
    0.5000    6.3000   38.0000   20.0000    7.0000
    0.5000    4.8000   44.0000   20.0000    7.0000
    0.5000    3.5000   52.0000   20.0000    7.0000
    0.5000    2.0000   70.0000   20.0000    7.0000
    0.5000    1.3000   86.0000   20.0000    7.0000

如果您绘制此图,您会看到这些点被分为 7 个相同颜色的组(取自F矩阵的第 5 列)。

我想绘制连接相同颜色点的线。当然,线条应该与它们连接的点具有相同的颜色。

我试图将F矩阵拆分为五个 6x5 矩阵(名为F1 - F5)和 2 个 5x5 矩阵(名为F6F7),scatter3()并与line()命令一起使用并hold on创建我的 3D 图形,但它没有达到我想要的效果。

对于用scatter3()已经绘制的点集绘制的每组新点,都会改变颜色。所以在line()函数中指定一个短名称颜色并没有帮助。

我有什么选择?也许scatter3不是在这种情况下使用的最佳功能?

编辑

plot3()很有希望,但颜色设置有限。事实上,我宁愿避免使用颜色“白色”和“黄色”,它们在白色背景上看起来不太好。

4

1 回答 1

3

因此,我假设您要将矩阵分成 7 个,在这种情况下,并将它们保存在一个元胞数组中,因为动态变量很糟糕!假设您有一个称为F此工作的单元格数组:

C=hsv(7);
hold on
for ii=1:size(F,2)
   % //plot lines
   plot3(F{ii}(:,1),F{ii}(:,2),F{ii}(:,3),'Color',C(ii,:));
   % // plot points  
   plot3(F{ii}(:,1),F{ii}(:,2),F{ii}(:,3),'.','MarkerSize',F{ii}(1,4),'Color',C(ii,:)); 
end

在此处输入图像描述

它唯一的问题是它不允许多个标记大小,因此如果您希望点具有不同的标记大小,则需要添加另一个循环并逐个绘制点。我希望你能从这里得到它;)

于 2015-10-16T12:49:09.340 回答