Matlab作图后的各种调整⽅法——线条、坐标、标题、图例
Matlab作图后的各种调整⽅法——线条、坐标、标题、图例
⽂章⽬录
⼀,写在前⾯
⾸先介绍⼀个概念,我们在Matlab中作的图分为三个部分,分别是:
1.整个图窗 Figure(gcf)
2.我们使⽤命令做出的线条 Line,例如plot命令
3.坐标轴 Axes (gca)
所以看似我们使⽤plot命令画出了⼀张图,实际上我们只是改变了这张图的⼀个部分。
在Matlab中,我们可以分别对这三个部分进⾏改变,其中整个图窗的默认对象名是 gcf,坐标轴的默认对象名是 gca,⽽线条通常是⾃⼰绘图时⼿动定义的,例如:
>> x=[1 2 3 4 5];
>> y=x.^2;
>> p1=plot(x,y);
p1就是plot(x,y)这个曲线的名称,对象名有什么作⽤以及好处我们下⽂再进⾏介绍。
⼆,改变图中线条的粗细、颜⾊、标记等
以plot命令为例,我现在使⽤以下代码做出了⼀条曲线:
>> x=[1 2 3 4 5];
>> y=x.^2;
>> plot(x,y);
结果为:
这张图空⽩部分很⼤,图线⽐较细,颜⾊我也不喜欢。
那么如果我想把图线加粗,并且变成⿊⾊,应该怎么做呢?
其实我们使⽤的plot命令⾥有很多种参数可以设置,以下给出plot命令的两种常⽤的基本形式:
plot(X1,Y1,LineSpec1,...,XN,YN,LineSpecN);
plot(___,Name1,Value1,...,NameN,ValueN);
第⼀个式⼦在同⼀个图窗内绘制了从y1-x1到yN-xN ⼀共n条曲线。式⼦中的LineSpec就是控制它前⾯所绘制曲线特征的参数,它是⼀个字符串,包含三个部分:线型 、颜⾊、标记。以下分别给出每种特征和对应的字符串:
线型字符说明
-实线(solid line)
- -虚线(dashed line)
- .点划线 (dash-dotted line)
:点线(dotted line)
颜⾊字符
k⿊⾊(black)
线型字符说明
b蓝⾊(blue)
g绿⾊(green)
c青⾊(cyan)
m粉红⾊(magenta)
r红⾊(red)
w⽩⾊(white)
y黄⾊(yellow)
标记字符
.
点(dot)
*星号(asterisk)
X叉号(cross)
O圆圈(circle)
+加号(plus sign)
s⽅形(square)
d菱形(diamond)
p五⾓形(Five-pointed star)
h六⾓形(hexagram)
^上三⾓形(triangle-up)
v下三⾓形(triangle-down)
<;左三⾓形(triangle-left)
>右三⾓形(triangle-right)
例如我想把上述曲线改为虚线,⿊⾊,⽤星号标记,则plot命令可以写为:
>> plot(x,y,'--k*');
运⾏结果为:
需要说的是,这三种特征字符的顺序并没有要求,即上式中的- -、k和*的顺序可以按⾃⼰喜好书写。
讲完了第⼀个式⼦,接下来讲讲第⼆个式⼦:
plot(___,Name1,Value1,...,NameN,ValueN);
其中的Name和Value被称为名称-值对组参数,Name为参数名称,Value为对应的值。下⾯分别给出各种常⽤的Name以及对应的Value:1. 线条颜⾊:‘Color’
前⾯更改线条颜⾊的⽅法只能把线条颜⾊变为预设的⼏种,如果想指定任意⼀种颜⾊,就需要使⽤此组参数,其中Value的值可以是预设颜⾊的全名,也可以是RGB三元组和⼗六进制颜⾊代码,例如将上述曲线颜⾊变为绿⾊(green),则代码可以写为以下三种⽅式中的任意⼀种:
>> plot(x,y,'Color','green');
>> plot(x,y,'Color',[0 1 0]);
>> plot(x,y,'Color','#00FF00');
>> plot(x,y,'Color','#A500EB');
运⾏结果为:
2. 线型:‘LineStyle’
同上,例如改为点划线:
>> plot(x,y,'LineStyle','-.');
3. 线宽:‘LineWidth’
指定以榜为单位的正值,如果不进⾏设置,默认线宽为0.5榜,其中1榜=1/72英⼨,例如将上述曲线宽度改为2榜,则代码为:>> plot(x,y,'LineWidth',2);
输出结果为:
4. 标记符号:‘Marker’
和上述相同,例如将标记符号改为加号,则代码为:
>> plot(x,y,'Marker','+');
5. 标记轮廓颜⾊:‘MarkerEdgeColor’ 和标记填充颜⾊:‘MarkerFaceColor’
和上述相同,Value的值可以为预设颜⾊的全名、RGB三元组或⼗六进制颜⾊代码。
6.标记⼤⼩:‘MarkerSize’
同样指定以榜为单位的正值,如果不进⾏设置,默认⼤⼩为6榜,例如把加号标记的⼤⼩改为12榜,则代码可以写为:
>> plot(x,y,'Marker','+','MarkerSize',12);
运⾏结果为:
7. 标记所在数据点的索引:‘MarkerIndices’
这个要重点说⼀下,假设我现在有这么⼀个代码:
>> x=[0:0.01:3];
>> y=x.^2;
>> plot(x,y,'-d');
绘制以菱形为标记的实线曲线,但是由于这个曲线包含的点⾮常多,有301个点,所以使⽤上述代码得到的曲线会糊成⼀团:
这个时候就可以使⽤这个参数了,Value值为需要标记的数据点所在位置组成的向量,以下举两个例⼦说明⼀下⽤法:
**例1.**我需要在第1、第150和第301个数据点显⽰标记,其他位置不显⽰标记,则代码可以写为:
>> plot(x,y,'-d','MarkerIndices',[1 150 301]);
输出结果为:
例2我需要从第⼀个点开始,每隔50个点显⽰⼀个标记,则代码可以写为:
>> plot(x,y,'-d','MarkerIndices',1:50:length(y));
输出结果为:
需要注意的是,这个参数在使⽤时必须要⼿动指定曲线的线型,如果不指定线型,则输出结果并不会⾃动指定曲线为实线,⽽是不会显⽰曲线只显⽰标记,例如:
>> plot(x,y,'d','MarkerIndices',1:50:length(y));
输出结果为:
三,那么指定对象名有什么⽤呢
不知你发现没有,上⽂中我们改变曲线的特征都是在plot命令中进⾏的,那如果之后我们对曲线的特征不满意的话要怎么修改呢?重新使⽤plot命令再画⼀遍?只是⼀条曲线倒还好,如果⼀个plot命令⾥⾯包含的曲线⽐较多就变得⿇烦起来了。
但是如果我们在使⽤plot命令时指定⼀个变量名给它,问题就会变得轻松得多,例如:
>> x=[1 2 3 4 5];
>> y1=x;
>> y2=2*x-1;
>> y3=3*x-2;
>> p=plot(x,y1,'-rO',x,y2,'-kX',x,y3,':b*');
执⾏结果为:
在上述代码中,我们将plot的执⾏结果赋值给变量名为p的变量,他是⼀个3✖1的Line数组:
假设此时我对于第三条曲线y3-x的特征不满意,想要把线的宽度改为2榜,我们只需要修改变量p的值即可,下⾯给出两种写法供读者体会:
⽅法⼀:数组写法
>> p(3).LineWidth=2;
即改变Line数组p中的第三条曲线的LineWidth值。
⽅法⼆:set()命令写法
⾸先介绍⼀下set命令,它的作⽤是设置图形对象属性,基本形式为:
set(H,Name1,Value1,...,NameN,ValueN)
其中的Name和Value和上⽂中讲到的基本相同,本例中的写法为:
>> set(p(3),'LineWidth',2);
输出结果均为:
四,改变坐标轴的名称以及特性
1. 设置坐标轴名称
我们仍以第⼆章给出的例⼦为例:
>> x=[1 2 3 4 5];
>> y=x.^2;
>> plot(x,y);
假设我们想要将x轴命名为:X-axis,将y轴命名为:y=x²,这时候我们可以使⽤命令:xlabel和ylabel,他们的完整形式为:
xlabel(target,text,Name1,Value1,...,NameN,ValueN);
ylabel(target,text,Name1,Value1,...,NameN,ValueN);
fontweight属性bold其中target为需要设置坐标轴名称的⽬标,如果不设定则默认为gca,text为设定的坐标轴名称,本例中为’X-axis’,Name和Value为参数,具体设置后⾯再介绍,和下⽂中set命令相同。
那么代码可以写为:
>> xlabel('X-axis');
>> ylabel('y=x^2');
运⾏结果为:
如果⼀⾏写不下需要分⾏书写,则需要将字符串分开书写,例如让本例中的X-占第⼀⾏,axis占第⼆⾏,则代码为:
>> xlabel({'X-','axis'});
运⾏结果为:
需要说明的是,Matlab作图中坐标轴名称以及后⾯提到的图例内容和⽂本内容,是⽀持Tex引擎的,所以可以直接使⽤Tex写法,下⾯给出两个论⽂中⽐较常⽤的例⼦,请读者⾃⾏体会:
例1:以斜体表⽰名称
>> xlabel('{\it X-axis}');          %{\it  }表⽰斜体
例2:表⽰希腊字母等,以π为例:
>> xlabel('-2\pi \leq x \leq 2\pi');  %输出结果为-2π≤x≤2π
2. 改变坐标轴特性
我们同样可以使⽤set命令改变坐标轴的特性,使⽤set命令可以同时改变两个坐标轴的特性,以下分别进⾏说明:
2.1 改变字体⼤⼩:‘FontSize’
以榜为单位,指定为⼤于零的标量值。例如将上例中坐标轴字体的⼤⼩改为10榜,则命令为:
>> set(gca,'FontSize',10);
2.2 改变字符粗细:‘FontWeight’
字符粗细默认值为’normal’,如果要使⽤加粗字体则需要设置为’bold’:
>> set(gca,'FontWeight','bold');
运⾏结果为:
2.3 改变字体名称:‘FontName’
例如将坐标轴字体改为Times New Roman,则代码为:
>> set(gca,'FontName','Times');
2.4 改变⽂本颜⾊:‘Color’
同上,此处不在详述。
五,改变坐标轴的刻度以及范围
假设有⼀个函数为y=sin(x),x∈[0 2π],则代码为:
>> x=linspace(0,2*pi);
>> y=sin(x);
>> plot(x,y);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。