matlab - 在坐标 (x,y) 上绘制 (x,y,z) 三元组,颜色为 z

标签 matlab plot

我有一个点列表 (x,y,z),我想将它们可视化为平面上的一条曲线,点在 (x,y) 上,任何颜色/强度/厚度为 z。这如何在 Matlab 中完成?

plot(x,y) 获得了正确的形状,但我需要颜色取决于 z

最佳答案

假设您不关心实际线条的颜色,而是标记。结合使用 plotscatter

想象一下以下示例数据:

t = 0:pi/20:2*pi;
x = sin(t);
y = cos(t);
z = t;

plot3(x,y,z);

enter image description here

绘制在二维平面上:

plot(x,y); hold on
scatter(x,y,300,z); hold off

结果:

enter image description here

根据您的评论:如果您有足够的数据并且不需要该行,只需使用 scatter,这正是您所需要的。


solution on MATLAB Central 启发的另一种可能性,同时考虑线和标记。

surface([x;x],[y;y],zeros(2,length(t)),[z;z],'EdgeColor','flat',...
        'Marker','o','MarkerSize',10,'MarkerFaceColor','flat');

enter image description here


使颜色依赖于 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

enter image description here

对于 z 而言,增加透明度有点棘手。您可以找到解决方法 here , 使用 patch 函数。

关于matlab - 在坐标 (x,y) 上绘制 (x,y,z) 三元组,颜色为 z,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21658031/

相关文章:

python - 在 Pandas 数据框中显示对图

python - Pandas 绘图条顺序类别

matlab - 如何在matlab中找到xlabel的实际长度或坐标

c++ - 从 Matlab 连接到本地服务器

plot - Julia 绘图 : delete and modify existing lines

python - 在 basemap 中绘制包裹路径

python - 'numpy.ndarray' object has no attribute 'barh' 是什么意思,如何纠正?

image - 检测灰度或二值图像中的六边形形状

matlab - 如何在MATLAB中设置newff(神经网络工具箱函数)?

image-processing - 带有自定义插值内核的 MATLAB imresize