0

我正在一系列图像上绘制不断变化的线轨迹。我希望线条具有不同的颜色(尽可能多),并且我希望在整个序列中保留颜色。我的代码现在使用一个绘图plot(traj_to_plot{:})命令traj_to_plot={[traj1_x_coor] [traj1_y_coor] [traj2_x_coor] [traj2_y_coor] ...}(循环的每个循环之间的轨迹顺序并不总是保持不变,并且轨迹的数量可以改变,如前所述。我需要某种方式将一帧中绘制的轨迹与连续绘制的相同轨迹联系起来框架,如果它停止了,我需要以下轨迹保持相同的颜色(而不是简单地根据 ColorOrder 循环改变)。

这是发生变化的两个连续图像: 第一帧 在此处输入图像描述

这些示例照片中的问题很明显。由于在第二帧中没有识别出 2 号蚂蚁,因此颜色顺序循环改变了大部分轨迹的颜色。有任何想法吗?

4

1 回答 1

2

您可以像这样手动为每个图分配颜色:

figure();
hold on;

plot(traj_to_plot{1},'red')
plot(traj_to_plot{2},'blue')

等等。

如果这是一项重复性任务,您可以使用以下内容:

colours = {'blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black'};

figure();
hold on;

traj_to_plot1{1} = [1 2 3];
traj_to_plot1{2} = [0 2 4];

for ii=1:numel(traj_to_plot1)
    plot(traj_to_plot1{ii},colours{mod(ii,numel(colours))});
end

traj_to_plot2{1} = [0.5 2 3.5];
traj_to_plot2{2} = [-0.5 2 4.5];
traj_to_plot2{3} = [-1.0 2 5];

for ii=1:numel(traj_to_plot2)
    plot(traj_to_plot2{ii},colours{mod(ii-1,numel(colours))+1});    %Thanks to @wakjah.
end

在此处输入图像描述

于 2013-04-04T17:34:25.817 回答