首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在循环中打印多条线时保留颜色(Matlab)

在循环中打印多条线时保留颜色(Matlab)
EN

Stack Overflow用户
提问于 2013-04-05 01:26:01
回答 1查看 977关注 0票数 0

我在一系列图像上绘制不断变化的线轨迹。我希望线条具有不同的颜色(尽可能多),并且希望颜色在整个序列中保持不变。我的代码现在使用了一个plot命令(plot(traj_to_plot{:})),该命令使用一个单元格数组,其中包含每个轨迹(即traj_to_plot={[traj1_x_coor] [traj1_y_coor] [traj2_x_coor] [traj2_y_coor] ...})交替的x和y坐标。循环的每个周期之间的轨迹顺序并不总是保持不变,并且轨迹的数量可以改变,如前所述。我需要在一帧中绘制的轨迹与在连续帧中绘制的相同轨迹之间建立某种关联,如果它停止,我需要以下轨迹保持相同的颜色(而不是简单地根据ColorOrder周期改变)。

下面是两张连续的图片,其中发生了变化:

这个问题在这些示例照片中很明显。因为蚂蚁编号2在第二帧中没有被识别,所以颜色顺序周期改变了大多数轨迹的颜色。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-05 01:34:26

您可以手动为每个绘图指定颜色,如下所示:

代码语言:javascript
复制
figure();
hold on;

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

诸若此类。

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

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15817754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档