for 循环中的绘图和同一循环中的图例颜色不匹配。我怎样才能让他们对应起来。 MATLAB

发布于 2024-11-30 09:55:13 字数 302 浏览 1 评论 0原文

for j= 1:numfiles;
   plot(A(j,:))
   legendmatrix{j,1}=strcat('Run',num2str(j))
   hold all
end
legend(legendmatrix)

hold all 允许我为所有曲线设置不同的颜色。但是,当我使用 strcat 中的字符串并将它们显示在绘图上时,没有使用足够的颜色,并且它们没有分配给相应的曲线。

在这种情况下,图 1 在图例中运行 1,等等...并且我希望颜色匹配

for j= 1:numfiles;
   plot(A(j,:))
   legendmatrix{j,1}=strcat('Run',num2str(j))
   hold all
end
legend(legendmatrix)

hold all allows me to have different colors for all my curves. However when I use the strings from strcat and display them on the plot, not enough colors are used and they are not assigned to the corresponding curve.

In this case plot 1 is run 1 in the legend, etc... and I want the colors to match

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝礼 2024-12-07 09:55:13

下面是一个稍有不同的示例:

%# sample data
N = 7;
A = rand(N,10);
x = 1:10;

%# plot each with a specific color
hold on
clr = lines(N);    %# LINES colormap
for j=1:N
   plot(x, A(j,:), 'Color',clr(j,:))
end
hold off

%# add legend
str = cellstr( num2str((1:N)','Run%d') );
legend(str)

screenshot

请注意,如果 N>7,则 LINES 颜色图将开始重复颜色,但您始终可以指定自己的颜色集...您还可以使用不同标记的选项和线条样式以获得视觉上更清晰的数据。

Here is a slightly different example:

%# sample data
N = 7;
A = rand(N,10);
x = 1:10;

%# plot each with a specific color
hold on
clr = lines(N);    %# LINES colormap
for j=1:N
   plot(x, A(j,:), 'Color',clr(j,:))
end
hold off

%# add legend
str = cellstr( num2str((1:N)','Run%d') );
legend(str)

screenshot

Note that if N>7, the LINES colormap will start to repeat colors, but you can always specify your own set of colors... You also have the option of using different markers and line-styles to get more visually distinct data.

行雁书 2024-12-07 09:55:13

使用下面的 Amros 示例,使数据更易于概念可视化,并使用 jet 颜色图来支持 7 种以上不同的颜色:

%# sample data
N = 15;

x = 1:10;

A = rand(N,10)./2;
A = A + repmat((1:N)',1,10);

%# plot each with a specific color
hold on
clr = jet(N);    %# LINES colormap
for j=1:N
   plot(x, A(j,:), 'Color',clr(j,:))
end
hold off

%# add legend
str = cellstr( num2str((1:N)','Run%d') );
legend(str)

正如您从结果中看到的,图例是正确的,您可以绘制更多线条:
在此处输入图像描述

Used Amros example below and made the data easier for visualization of concept and used jet colormap instead to support more than 7 different colors:

%# sample data
N = 15;

x = 1:10;

A = rand(N,10)./2;
A = A + repmat((1:N)',1,10);

%# plot each with a specific color
hold on
clr = jet(N);    %# LINES colormap
for j=1:N
   plot(x, A(j,:), 'Color',clr(j,:))
end
hold off

%# add legend
str = cellstr( num2str((1:N)','Run%d') );
legend(str)

As you can see from the results, the legend is correct, and you can plot a lot more lines:
enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文