假设我有一个数据集,它由三个向量组成,这些向量表示 3D 轨迹。可以使用以下命令在 Matlab 中绘制此时间数据: plot3(Data(:,1),Data(:,2),Data(:,3),'.r');
输出是点的“云”:
我想可视化轨迹,所以我的问题是:如何修改绘图以使点的颜色代表时间数据的索引(时间)? 只是为了让我的观点更清楚一点,想象一个点的轨迹,这些点的颜色从红色“平滑”地变化为蓝色,以一种使我能够可视化轨迹的方式。
假设我有一个数据集,它由三个向量组成,这些向量表示 3D 轨迹。可以使用以下命令在 Matlab 中绘制此时间数据: plot3(Data(:,1),Data(:,2),Data(:,3),'.r');
输出是点的“云”:
我想可视化轨迹,所以我的问题是:如何修改绘图以使点的颜色代表时间数据的索引(时间)? 只是为了让我的观点更清楚一点,想象一个点的轨迹,这些点的颜色从红色“平滑”地变化为蓝色,以一种使我能够可视化轨迹的方式。
我能想到两个答案:
surface
像这样在 3D 线上使用函数:
color=1:length(Data(:,1));
surface([Data(:,1);Data(:,1)],[Data(:,2);Data(:,2)][Data(:,3);Data(:,3)],[color ;color],...
'facecol','no','edgecol','interp');
这是一个非常好的技巧,但它绘制了一条线。
如果要绘制点,可以定义 RGB 颜色并绘制单个点,hold on
如下所示:
hold on
for i=1:length(Data(:,1))
plot3(Data(i,1),Data(i,2),Data(i,3),'Color',[(i/100*255)/255 0/255 (255-(i/100*255))/255],'LineWidth',2)
end
shg