我有以下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(...);
,但它没有绘制任何内容。
答案 0 :(得分:2)
我不太清楚你到底想要什么。您可以将其解释为:
让我们回答每个问题,这样我们就可以了解我们的基础。
对于plot
中的第三个参数,您可以使用单个字母指定绘图中线条所需的颜色。因此,如果您希望所有三个图都变黑,请在每次调用k
后使用plot
。 b
实际上是为蓝色保留的。此外,由于您多次调用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。它实际上解释得很好!