0
set(0,'DefaultAxesColorOrder',[1 0 0;0 0 1;1 0 1;0 0 0]);
hold('all');
semilogy(Te, iicollfreq(:,P), Te, iecollfreq(:,P), Te, incollfreq(:,P), Te,iTotcollfreq(:,P))

这是我的 matlab 代码,用于在同一张图上绘制 4 个单独的数据集,由于某种原因,它不会用 4 种不同的颜色绘制所有内容。如果我在最后删除[0 0 0],我得到三个非常好,但我无法显示第四个颜色。有谁知道如何正确绘制这个?

4

2 回答 2

1

你在你的情节中得到了什么?我无法重现您的问题。

你确定你的情节没有重叠或iTotcollfreq不会情节(例如它是全部InfNaN)。您还可以通过添加图例或使用绘图工具来检查是否制作了图表。

您是否尝试过使用随机数据来确保不是这种情况?

t = 1:10;
f = @(t)(randn(size(t)));
set(0,'DefaultAxesColorOrder',[1 0 0;0 0 1;1 0 1;0 0 0]);
plot(t,f(t), t,f(t), t,f(t), t,f(t));
legend('show');
于 2012-07-30T18:40:54.953 回答
1

您还可以使用以下语法来指定颜色:

plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec)

这是基于@Egon代码的示例:

t = 1:100;
f = @(t) cumsum(randn(size(t)));
plot(t,f(t),'r',  t,f(t),'b', t,f(t),'m', t,f(t), 'k')

甚至更好:

h = plot(t,f(t), t,f(t), t,f(t), t,f(t));
set(h, {'Color'},num2cell([1 0 0;0 0 1;1 0 1;0 0 0],2))
legend(h, {'1','2','3','4'})

在此处输入图像描述

于 2012-07-30T19:14:37.910 回答