我正在绘制一系列图像上不断变化的线条轨迹。我希望线条具有不同的颜色(尽可能多),我希望颜色在整个序列中保留。
我的代码现在使用一个绘图命令(plot(traj_to_plot{:})
),使用包含每个轨迹的交替x和y坐标的单元格数组(意思是traj_to_plot={[traj1_x_coor] [traj1_y_coor] [traj2_x_coor] [traj2_y_coor] ...}
)。如前所述,循环的每个循环之间的轨迹的顺序并不总是保留,并且轨迹的数量可以改变。我需要某种方式将一帧中绘制的轨迹与连续绘制的相同轨迹相关联。框架,如果它停止,我需要以下轨迹保持相同的颜色(不是简单地根据ColorOrder循环改变)。
这是发生变化的两个连续图像:
这些样本照片中的问题很明显。因为在第二帧中未识别蚂蚁数2,所以颜色顺序周期改变了大多数轨迹的颜色。 有任何想法吗?
答案 0 :(得分: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