MATLAB 如何对 figure 中的曲线属性进行修改?

针对已经绘制好的figure,如何修改曲线的属性,如颜色、线性、标记符号?

结果如下:

处理之前:

2019-10-22_125344

美化之后:

2019-10-22_123154

思路:首先选中目标属性,调用句柄来逐级选择,即 figure – axis – line ;

具体程序如下:

set(0,'defaultfigurecolor','w');%设置图片默认背景为白色
h_f=gcf;%选中当前图片句柄
h_a=gca;%选中坐标轴句柄
h_lines=get(h_a,'Children');%选中曲线句柄
set(h_lines(1,1),'LineStyle','-.','Color',[0 0 1],'LineWidth',1.5,'Marker','o','MarkerSize',10.0,'MarkerFaceColor','none','MarkerEdgeColor',[0 0 1],'MarkerIndices',1:5:500);%设置曲线2的属性
set(h_lines(2,1),'LineStyle','-','Color',[25 141 25]/255,'LineWidth',1.5,'Marker','^','MarkerSize',10.0,'MarkerFaceColor','none','MarkerEdgeColor',[25 141 25]/255,'MarkerIndices',1:5:500);%设置曲线1的属性
set(gca,'XTick',0:500:2000,'YTick',0:0.2:1,'FontSize',28,'FontName','Arial');%设置坐标轴取值范围
xlabel('Time (units of \tau)','FontName','Euclid','FontSize',36,'FontWeight','Bold');%设置x轴标签
ylabel('Intensity {\itf} ^2 ({\ita}. {\itu}.)','FontName','Euclid','FontSize',36,'FontWeight','Bold');%设置y轴标签
axis([0 2000 -0.05 1.05]);%设置坐标轴取值范围
lgd1=legend({'\Omega_{\itc}/\Omega_{0}','\theta'},'Location','Northeast','FontSize',28,'FontName','Euclid','TextColor','black');%设置图例
legend('boxon');%设置图例边框-打开
grid on;%打开网格线

线型符   表示

  -          实线

--         虚线

  -.        点划线

  :          点线

none     无线

标记符    表示

+           加号

o           圆圈

  *          星号

  .            点

  x          叉号

  s         正方形 square

d          菱形 diamond

^         正三角

v          倒三角

>         右三角

<         左三角

p         五角星 pentagram

h         六角星 hexagram

颜色     表示

g        绿

m      品红

b        蓝

c        灰

w       白

r        红

k       黑

y       黄

注:可以使用 'Color',[79 25 182]/255 来设置,[ ]里填入RGB颜色值即可。

例如:

x = -5:.1:5; 
y = sin(x); 
y1=tanh(x);
y2=cos(x);
y3=exp(x);
y4=0.5*x;
y5=-0.5*x;
y6=0.1*x.^2;
y7=1./x;
y8=sinh(x);
y9=cosh(x);
set(0,'defaultfigurecolor','w');
figure;
plot(x,y,'-o'); 
hold on;
plot(x,y1,'-^'); 
plot(x,y2,'-+'); 
plot(x,y3,'-*'); 
plot(x,y4,'-.'); 
plot(x,y5,'-x'); 
plot(x,y6,'-s'); 
plot(x,y7,'-d'); 
plot(x,y8,'-p'); 
plot(x,y9,'-h'); 
axis([-5 5 -1 1]);
legend('sin(x)','tanh(x)','cos(x)','e^x','0.5x','-0.5x','0.1x^2','1/x','sinh(x)','cosh(x)');
xlabel('x');
ylabel('y');

运行结果如下:

2019-10-22_164501

 

详见:

http://blog.sina.com.cn/s/blog_897aeb0d0102zpoq.html

posted @ 2019-10-22 12:48  无垠的广袤  阅读(4642)  评论(0编辑  收藏  举报