我有这个矩阵可以在" Matlab"中绘制。使用scatter3
,如果使用以下命令
scatter3(F(:,[1]),F(:,[2]),F(:,[3]),F(:,[4]),F(:,[5]))
(我基本上将5个列向量中的 F 矩阵分开)
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矩阵(名为 F6 和 F7 )并使用scatter3()
和line()
命令以及hold on
来创建我的3D图形,但它没有做我做的事情通缉。
对于使用scatter3()
绘制的每个新点集,已绘制的点集会改变颜色。因此,在line()
函数中指定短名称颜色无济于事。
我有哪些选择?在这种情况下,scatter3
可能不是最好的功能吗?
修改
plot3()
很有前途,但颜色设置有限。事实上,我宁愿避免使用颜色" white"和"黄色",在白色背景上不显示。
答案 0 :(得分:3)
所以,我假设你要将你的矩阵分成7个,在这种情况下,将它们保存在单元格数组中,如dynamic variables are BAD!
假设你有一个名为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
它唯一的问题是它不允许多个标记大小,因此如果您希望点具有不同的标记大小,则需要添加另一个循环并逐个绘制点。我希望你能从这里得到它;)