我有一个点列表 (x,y,z),我想将它们可视化为平面上的一条曲线,点在 (x,y) 上,任何颜色/强度/厚度为 z。这如何在 Matlab 中完成?
plot(x,y)
获得了正确的形状,但我需要颜色取决于 z
。
最佳答案
假设您不关心实际线条的颜色,而是标记。结合使用 plot
和 scatter
。
想象一下以下示例数据:
t = 0:pi/20:2*pi;
x = sin(t);
y = cos(t);
z = t;
plot3(x,y,z);
绘制在二维平面上:
plot(x,y); hold on
scatter(x,y,300,z); hold off
结果:
根据您的评论:如果您有足够的数据并且不需要该行,只需使用 scatter
,这正是您所需要的。
受 solution on MATLAB Central 启发的另一种可能性,同时考虑线和标记。
surface([x;x],[y;y],zeros(2,length(t)),[z;z],'EdgeColor','flat',...
'Marker','o','MarkerSize',10,'MarkerFaceColor','flat');
使颜色依赖于 z
非常容易,要更改标记大小,您肯定需要 scatter
函数:
surface([x;x],[y;y],zeros(2,length(t)),[z;z],'EdgeColor','flat'); hold on
MarkerSize = round(z*1000)+1;
scatter(x,y,MarkerSize,z,'.','MarkerFaceColor','auto'); hold off
对于 z
而言,增加透明度有点棘手。您可以找到解决方法 here , 使用 patch
函数。
关于matlab - 在坐标 (x,y) 上绘制 (x,y,z) 三元组,颜色为 z,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21658031/