在MATLAB中将每个图形轨迹绘制为相同的颜色

时间:2014-10-20 14:32:58

标签: matlab colors plot

我有以下MATLAB代码,我试图让所有的绘图轨迹变黑:

x = 20:0.01:30;
m1 = 25;
s1 = 2.5;
pdfNormal_1 = normpdf(x, m1, s1);
m2 = 25.478;
s2 = 0.1637;
pdfNormal_2 = normpdf(x, m2, s2);
m3 = 25.478;
s3 = 0.189;
pdfNormal_3 = normpdf(x, m3, s3);
set(gcf,'color','w');

g=findobj(gca,'Type','patch');
%set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w')
%set(g(2),'FaceColor',[0 1 1],'EdgeColor','w')
%set(g(3),'FaceColor',[0 1 1],'EdgeColor','w')
set(gca,'Fontsize',12,'Fontname','euclid')
xlabel(' ') %título eixo xx
hold all;

%plot(x, pdfNormal_1, x, pdfNormal_2, x, pdfNormal_3);
%set(gcf,'Color',[0 0 0])
plot(x,pdfNormal_1,'-.')
plot(x,pdfNormal_2,':')
plot(x,pdfNormal_3,'-','LineWidth',2)

有人能帮助我吗?我从%删除了set(...);,但它没有绘制任何内容。

1 个答案:

答案 0 :(得分:2)

我不太清楚你到底想要什么。您可以将其解释为:

  1. 您希望所有线条都是黑色的
  2. 您希望背景窗格为黑色。
  3. 让我们回答每个问题,这样我们就可以了解我们的基础。

    想要所有黑线

    对于plot中的第三个参数,您可以使用单个字母指定绘图中线条所需的颜色。因此,如果您希望所有三个图都变黑,请在每次调用k后使用plotb实际上是为蓝色保留的。此外,由于您多次调用plot,默认情况下每次调用plot都会使用最新调用plot覆盖当前数字的内容,因此如果您需要全部三个图表同时出现,您需要使用hold on。因此,请将其放在代码的末尾:

    hold on;
    plot(x,pdfNormal_1,'k-.')
    plot(x,pdfNormal_2,'k:')
    plot(x,pdfNormal_3,'k-','LineWidth',2);
    

    您还可以删除任何set命令,因为这些命令无效。你实际上在做的是将背景设置为白色,这可能不是你想要做的。背景,我指的是轴出现的区域,而不是绘图本身的绘图区域。

    希望背景窗格为黑色

    如果你想要情节的背景显示为黑色,那么这是一个非常简单的单行语句。您需要设置当前轴颜色,而不是当前图形。因此,请将set(gcf...)语句替换为set(gca...)。因此:

    set(gca,'Color',[0 0 0])
    

    现在,如果这是你想要的,你可以自行决定在这个情节上会出现什么颜色。红色肯定在这里显得很好!


    有关plot如何工作的更多信息,请查看MathWorks上的文档页面:http://www.mathworks.com/help/matlab/ref/plot.html。它实际上解释得很好!