matlabplot多种颜⾊_SCI论⽂写作MATLAB出图(1)
⽬前,SCI论⽂写作中数据的出图⽅式我所知道的有三种,Excel出图,Origin出图,还有⼀种就是使⽤MATLAB代码出图。我个⼈通常⽤的是第三种,偶尔也会去结合Excel出图,此系列内容主要是总结对于MATLAB代码出图的⼀点⼼得,与诸君交流,也是⼀些基本技巧,锦上添花的事情就因⼈⽽异了。
这⾥要说明⼀下,也算是⼀个⼩技巧,每⼀个图,对应⼀个⽂件夹,即这个⽂件夹只包含要出的这个图的数据和代码。因为有时候你这⾥要说明⼀下,也算是⼀个⼩技巧,每⼀个图,对应⼀个⽂件夹,即这个⽂件夹只包含要出的这个图的数据和代码。
的程序跑出来的数据可能需要⼏个⼩时,出图是⼀个慢慢修改的过程,修改频率很⾼,需要不断的去运⾏这个出图程序。
本系列主要讲如下⼀些内容,
1. 基础设置;
2. 基本⼆维图,包含⼦图,局部放⼤图;
3. 双坐标图;
4. 三维图;
5. 柱状图;
6. 其余的⼀些补充及我个⼈的总结思考。
1.基础设置
这部分为出图部分的基础设计,
clear
clc
load data.mat
set(gcf,'position',[42,80,1200,730],'PaperPositionMode','auto');%设计图窗⼤⼩
set(gcf,'ToolBar','none','ReSize','off'); %移除⼯具条
set(gcf,'color','w');%设置图窗颜⾊为⽩⾊
注:
doc,个⼈认为要⽐help
help好⽤
1.这⾥说⼀下MATLAB⾮常好⽤的⼀个函数,doc
在命令⾏窗⼝输⼊
doc set
set函数的使⽤
可以很好的学习这个set
position的解释,这个针对对象是计算机的屏幕
2.对这个position
[a b c d],这四个位置的含义很简单,a a,距离左边框的位置,b b,距离下边框的位置,c c,图长,d d,图⾼。
2.基本⼆位图绘制,以2X2图为例⼦
准备⼀些函数,我⾃⼰先随便定义⼏个函数,我们就出这⼏个函数的图作为例⼦。
t=0:0.1:1
y1=@(t)2.*t.^2+1;
y2=@(t)t.^3+2.^t;
y3=@(t)cos(pi*t)+2;
y4=@(t)tan(2*pi*t)+1;
注:定义函数,个⼈⽐较喜欢这种形式,⽐较便捷
2.1 我们准备画四个图,2x2
subplot(2,2,1) %表⽰2x2第⼀个图
p1 = plot(t,y1(t),'b--','LineWidth',1.5);
hold on
p2 = plot(t,y2(t),'color',[0 0.81 0.82],'LineWidth',1.5);
set(gca,'Position',[0.06 0.7 0.4 0.27]);%第(1)个图的位置
g = get(p1,'Parent');%对应p1所在的坐标轴
set(g,'Linewidth',1.5,'FontSize',12,'FontName','Times New Roman','FontWeight','bold');
%这⾥定义坐标轴的线宽,字体,字号,字体是否加粗
ylabel('函数值','FontSize',12,'FontName','华⽂中宋');
xlabel('ittrm(srm)','FontSize',14,'FontName','Times New Roman');%it表⽰斜体,rm表⽰正体
subplot(2,2,2)
b1 = plot(t,y1(t)-y2(t),'c--','LineWidth',1.5);
set(gca,'Position',[0.56 0.7 0.4 0.27]);%第(2)个图的位置
g = get(b1,'Parent');%对应p1所在的坐标轴
set(g,'Linewidth',1.5,'FontSize',12,'FontName','Times New Roman','FontWeight','bold'); ylabel('误差','FontSize',12,'FontName','华⽂中宋');
xlabel('ittrm(srm)','FontSize',14,'FontName','Times New Roman');
subplot(2,2,3)
p3 = plot(t,y3(t),'r--','LineWidth',1.5);
hold on
p4 = plot(t,y4(t),'color',[0 0.3 0.82],'LineWidth',1.5);
set(gca,'Position',[0.06 0.28 0.4 0.27]);%第(3)个图的位置
g = get(p3,'Parent');%对应p1所在的坐标轴
set(g,'Linewidth',1.5,'FontSize',12,'FontName','Times New Roman','FontWeight','bold'); ylabel('函数值','FontSize',12,'FontName','华⽂中宋');
xlabel('ittrm(srm)','FontSize',14,'FontName','Times New Roman');
subplot(2,2,4)
weight的搭配b2 = plot(t,y3(t)-y4(t),'g','LineWidth',1.5);
set(gca,'Position',[0.56 0.28 0.4 0.27]);%第(4)个图的位置
g = get(b2,'Parent');%对应p1所在的坐标轴
set(g,'Linewidth',1.5,'FontSize',12,'FontName','Times New Roman','FontWeight','bold'); ylabel('误差','FontSize',12,'FontName','华⽂中宋');
xlabel('ittrm(srm)','FontSize',14,'FontName','Times New Roman');
使⽤上述代码可以实现绘出图1,相关代码涵义我已经在对应位置做了标注。
注:
1).关于颜⾊,线型的使⽤
⽐如:
p3 = plot(t,y3(t),'r--','LineWidth',1.5);
hold on
p4 = plot(t,y4(t),'color',[0 0.3 0.82],'LineWidth',1.5);
'color',[0 0.3 0.82],如果你对matlab⾃带的颜⾊⽆感,这段代码的意思就是我⽤RGB去定义颜⾊,这三个数是0~1 r--表⽰红⾊虚线,'color',[0 0.3 0.82]
r--
之间的数,1对照255,如果你对颜⾊搭配⽐较考究的话,就可以去选你⾃⼰喜欢的配⾊了。
2).⼦图位置的调试
对⽐基础设计部分,位置的四个参数对应的是figure图窗的位置。
2.2 加个图例
图例的作⽤就是给读者看的,这些图代表什么意思。
h1=legend([p1 p2 p3 p4 b1 b2],'fontname{Times New Roman}y_1','fontname{Times New Roman}y_2','fontname{Times New Roman}y_3',...
'fontname{Times New Roman}y_4','fontname{华⽂中宋}误差1','fontname{华⽂中宋}误差2','Orientation','horizontal');
set(h1,'Linewidth',1.5,'FontSize',13,'FontWeight','bold');
set(h1,'position',[0.35,0.03,0.2,0.1]);%legend位置
注:
1).如果没有中⽂注释的话,可以这么写
h1=legend([p1 p2 p3 p4 b1 b2],'y1','y2','y3','y4','error1','error2','Orientation','horizontal');
%'Orientation','horizontal',表⽰图例横放
set(h1,'Linewidth',1.5,'FontSize',13,'FontName','Times New Roman','FontWeight','bold');
set(h1,'position',[0.35,0.03,0.2,0.1]);%legend位置
2).legend的其它使⽤技巧,doc legend
doc legend
2).legend
2.3 局部放⼤的应⽤
有时候我们需要增加⼀个局部放⼤加以说明,观察局部的位置
%(221)图增加局部放⼤
axes('position',[0.095,0.85,0.12,0.1]);%局部放⼤图位置
p1 = plot(t,y1(t),'b--','LineWidth',1.5);
hold on
p2 = plot(t,y2(t),'color',[0 0.81 0.82],'LineWidth',1.5);
axis([0.67 0.7 1.9 2]);%坐标范围设置
set(gca,'YTick',1.9:0.05:2,'FontName','Times New Roman','FontSize',10,'FontWeight','bold');%y坐标设置set(gca,'XTick',0.67:0.01:0.7,'FontName','Times New Roman','FontSize',10,'FontWeight','bold');%x坐标设置set(gca,'LineWidth',1.5);
注:
text函数
如果要对四个⼦图标注为(a)(b)(c)(d),⽤text
其余部分,有时间再更新,说明两点:
1.放上我的程序,m⽂件
main.m
2.7K
·
百度⽹盘
2.本⽂完全⾃创,欢迎各位学习交流。