【问题标题】:plot3 line color based on valueplot3 基于值的线条颜色
【发布时间】:2012-08-05 00:02:44
【问题描述】:

我有一组包含 3d 笛卡尔点 (x, y, z) 和时间戳的数据。

我想将此数据绘制为 3d 空间中的连接线,线条颜色会根据时间戳值而变化。

实际上我想在颜色条中显示时差。

有谁知道这样做的方法吗?

【问题讨论】:

标签: matlab colors plot


【解决方案1】:

考虑以下 3D 点随时间沿螺旋形路径移动的示例:

%# data
t = linspace(0,8*pi,200);
x = 20*t; y = cos(t); z = sin(t);

%# plot 3D line
plot3(x,y,z)
axis tight, grid on, view(35,40)

现在,如果您想绘制一条多色线,最简单的解决方案是编写一个 for 循环,将每个小段绘制为一条单独的线,每条线都有不同的颜色。这是因为单线对象只能有一种颜色。

更好的方法是使用表面图形对象:

c = 1:numel(t);      %# colors
h = surface([x(:), x(:)], [y(:), y(:)], [z(:), z(:)], ...
    [c(:), c(:)], 'EdgeColor','flat', 'FaceColor','none');
colormap( jet(numel(t)) )

结果:

【讨论】:

猜你喜欢
  • 2018-12-13
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多