Matlab作图后的各种调整方法

您所在的位置:网站首页 折线图做法图例大全 Matlab作图后的各种调整方法

Matlab作图后的各种调整方法

2024-01-24 09:12| 来源: 网络整理| 查看: 265

Matlab作图后的各种调整方法——线条、坐标、标题、图例

文章目录 Matlab作图后的各种调整方法——线条、坐标、标题、图例一 , 写在前面1.整个图窗 Figure(gcf)2.我们使用命令做出的线条 Line,例如plot命令3.坐标轴 Axes (gca) 二 , 改变图中线条的粗细、颜色、标记等1. 线条颜色:'Color'2. 线型:'LineStyle'3. 线宽:'LineWidth'4. 标记符号:'Marker'5. 标记轮廓颜色:'MarkerEdgeColor' 和标记填充颜色:'MarkerFaceColor'6.标记大小:'MarkerSize'7. 标记所在数据点的索引:'MarkerIndices' 三 , 那么指定对象名有什么用呢四 , 改变坐标轴的名称以及特性1. 设置坐标轴名称2. 改变坐标轴特性2.1 改变字体大小:'FontSize'2.2 改变字符粗细:'FontWeight'2.3 改变字体名称:'FontName'2.4 改变文本颜色:'Color' 五 ,改变坐标轴的刻度以及范围1. 设置或查询x轴刻度值:'xtick'2. 设置或查询x轴标签:'xticklabel'3. 使坐标轴刻度更精细:'xminortick'4. 设置坐标轴范围:'xlim'5. 设置网格可见性:grid on/off6. 设置边框可见性:box on/off7. 设置坐标轴可见性:axis on/off8. 其他坐标形式的设置 六 , 给绘制的图像设置标题七 , 给图形增加图例1. 增加图例2. 改变字体大小:'FontSize'3. 改变字体名称:'FontName'4. 改变字符粗细:'FontWeight'5. 改变文本颜色:'TextColor'6. 改变图例框填充颜色:'Color'7.改变图例所在的位置:'Location'8.任意改变图例所在的位置和大小:'Position'9.改变图例的堆叠方向:'Orientation'10.改变图例框的可见性:'boxon'/'boxoff'11.改变图例的可见性:'hide'/'show'

一 , 写在前面

首先介绍一个概念,我们在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-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');

输出结果均为: 在这里插入图片描述 如果想要使用任意一种颜色,只需要知道对应的RGB三元组或者十六进制颜色代码即可,可以去配色网站寻找,在这里也给出几个笔者比较常用的配色网站,均为免费使用不需要账号: Adobe Color CC (https://color.adobe.com/create/color-wheel/) Material Palette (https://www.materialpalette.com/) Flat UI Color Picker (https://www.flatuicolorpicker.com/) 例如将上述曲线改为紫色,则可以写为:

>> 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);

其中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π

如果要表达更为复杂的公式,如: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 则需要使用LaTex写法,并且需要将’Interpreter’参数指定为’latex’,上面各例的表达方法可以阅读我的另一篇文章:《使用LaTex表达MATLAB绘图中的常见公式》,链接为: 使用LaTeX表达MATLAB绘图中的常见公式 (https://blog.csdn.net/XTU__zhang/article/details/115706741)

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);

输出结果为: 在这里插入图片描述 可以看到虽然我们输出的x的上限是2*pi,但是做出的图中还是以自然数表示的,如果我们想用2π表示要怎么办呢? 为了解决这个问题,我们需要知道两个参数:

1. 设置或查询x轴刻度值:‘xtick’

顾名思义,这个参数是用来设置x轴的刻度值的,例如我想让本例中x的刻度只显示2和6,则代码为:

>> set(gca,'xtick',[2 6]);

输出结果为: 在这里插入图片描述 这里多说一句,如果不想用set命令,可以直接使用命令:

>> xticks([2 6]);

注意直接使用时是xticks,而不是xtick,虽然作用相同但是一个是命令一个是参数,作为命令使用时多了一个s。

2. 设置或查询x轴标签:‘xticklabel’

这个参数是和xtick配套使用的,比如上述代码中我们只显示了2和6时的标签,再改变xticklabel参数我们就可以让显示的2和6变成x=2和x=6:

>> set(gca,'xticklabel',{'x=2','x=6'});

输出结果为: 在这里插入图片描述 同理如果不想用set命令,直接使用xticklabels命令,效果相同:

>> xticklabels({'x=2','x=6'});

同样的,作为命令使用多了一个s。 下面回到第五章开始时的例子,x的范围是[0 2π],如果想用π表示x坐标,我们只需要先使用xtick定位到需要加标签的点,例如每隔π/2设置一个坐标,然后使用xticklabel设置标签即可,完整代码为:

>> x=linspace(0,2*pi); >> y=sin(x); >> plot(x,y); >> set(gca,'xtick',0:pi/2:2*pi); >> set(gca,'xticklabel',{'0','\pi/2','\pi','3\pi/2','2\pi'});

输出结果为: 在这里插入图片描述 同理,如果要设置y轴的坐标,可以使用ytick和yticklabel。

3. 使坐标轴刻度更精细:‘xminortick’

继续使用这个例子,我们现在得到了以π刻度表示的图形,但是x轴上相邻坐标之间没有刻度,如果想要在相邻坐标之间继续划分刻度,则可以改变xminortick参数,例如:

>> set(gca,'xminortick','on');

输出结果为: 在这里插入图片描述 同理如果要对y轴刻度继续划分,则可以改变yminortick参数。

4. 设置坐标轴范围:‘xlim’

可以改变xlim参数的值来控制坐标轴的显示范围,例如将x坐标轴的范围控制在[π 2π]之间,则代码为:

>> set(gca,'xlim',[pi,2*pi]);

运行结果为: 在这里插入图片描述 xlim也可以单独作为命令使用,例如:

>> xlim([pi,2*pi]);

效果相同,同理如果要改变y轴范围则可以使用ylim。

5. 设置网格可见性:grid on/off

使用此命令可以设置网格为可见:

>> grid on

输出结果为: 在这里插入图片描述

6. 设置边框可见性:box on/off

使用次命令可以使右边和上边的边框变为不可见:

>> box off

输出结果: 在这里插入图片描述

7. 设置坐标轴可见性:axis on/off

使用此命令可以使坐标轴变为不可见:

>> axis off

输出结果为: 在这里插入图片描述

8. 其他坐标形式的设置

如果要使用对数坐标作图,则可以使用其他绘图命令如loglog()、semilogx()、semilogy()。绘图相关命令在我的文章《MATLAB的几种常用出图方式》中做了简单的汇总,感兴趣的话可以去了解一下,链接为: MATLAB的几种常用出图方式 (https://blog.csdn.net/XTU__zhang/article/details/116163268) 虽然只是简单的汇总,使用的时候如果不知道怎么使用可以直接在MATLAB命令行窗口输入help+命令即可,例如:

>> help loglog 六 , 给绘制的图像设置标题

可以使用title命令给图像设置标题,完整形式为:

title(titletext,subtitletext,Name1,Value1,...,NameN,ValueN)

其中titletext为标题名,subtitletext为副标题名,写在标题名的下方。Name和Value和上述相同,即’FontSize’,‘FontWeight’,‘FontName’,'Color’等。

七 , 给图形增加图例 1. 增加图例

可以使用legend命令给图形增加图例,完整形式为:

legend(target,label1,...,labelN,Name1,Value1,...,NameN,ValueN)

其中target是需要增加图例的目标,label1,…,labelN为增加的图例文字,图例的顺序和绘图时的顺序相同,Name1,…,NameN则为一系列参数,除了之前讲过的’FontSize’之类的以外还有很多参数,后面会详细说明。 以第三章的例子为例:

>> 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*');

分别给三条曲线加上图例,代码为:

>> lg1=legend('y=x','y=2x-1','y=3x-2');

此处将legend的执行结果赋值给变量名为lg1的变量,输出结果为: 在这里插入图片描述 其中图例文字的输入顺序与plot命令中的绘制顺序一致。 图例虽然加上了,但是问题也很明显,比如图例的位置不合适,把线挡住了一部分,再比如字体不合适或者大小不合适等等。下面分别介绍legend命令中的常用参数。

2. 改变字体大小:‘FontSize’ 3. 改变字体名称:‘FontName’ 4. 改变字符粗细:‘FontWeight’

前文已经介绍过,此处用一个例子带过,例如将图例字体大小改为10榜,字体改为Times New Roman字体,采用加粗字符,则代码为:

>> set(lg1,'FontSize',10,'FontName','Times','FontWeight','bold');

输出结果为: 在这里插入图片描述

5. 改变文本颜色:‘TextColor’ 6. 改变图例框填充颜色:‘Color’

这里有所不同,上文讲过的’Color’参数在这里是改变图例框的填充颜色,如果想改变图例中文字的颜色应该使用’TextColor’参数,例如将图例中文字改为红色,图框填充改为黄色,则代码为:

>> set(lg1,'TextColor','red','Color','yellow');

输出结果为: 在这里插入图片描述

7.改变图例所在的位置:‘Location’

改变Location参数可以改变图例所在的位置,常用的Value值为:

Value值说明在坐标区域内north坐标区域内的 顶部south坐标区域内的 底部east坐标区域内的 右侧west坐标区域内的 左侧northeast坐标区域内的 右上角northwest坐标区域内的 左上角southeast坐标区域内的 右下角southwest坐标区域内的 左下角在坐标区域外northoutside坐标区域外的 顶部southoutside坐标区域外的 底部eastoutside坐标区域外的 右侧westoutside坐标区域外的 左侧northeastoutside坐标区域外的 右上角northwestoutside坐标区域外的 左上角southeastoutside坐标区域外的 右下角southwestoutside坐标区域外的 左下角

本例中坐标区域左上角空间很大,我们可以将图例的位置移动到坐标区域内的左上角:

>> set(lg1,'Location','northwest');

输出结果为: 在这里插入图片描述

8.任意改变图例所在的位置和大小:‘Position’

改变position参数可以任意设置图例的位置和大小,它的Value值为一个四元素行向量,形式为 [left bottom width height] ,其中left和bottom是指图例左下角相对于整个图窗(不是坐标区域)的位置,width和height则是指图例右上角相对于图例左下角的位置。 需要注意的是,这四个值默认情况下均为归一化的测量值,即相对于图窗的长、宽的比值,为小于1的数。例如:

>> set(lg1,'Position',[0.2,0.7,0.2,0.2]);

输出结果为: 在这里插入图片描述

9.改变图例的堆叠方向:‘Orientation’

指定为’vertical’:垂直堆叠图例项 或者’horizontal’:水平堆叠图例项。 默认值为’vertical’,如果要将图例改为水平堆叠,位置在左上角,则代码为:

>> set(lg1,'Location','northwest','Orientation','horizontal');

运行结果为: 在这里插入图片描述

10.改变图例框的可见性:‘boxon’/‘boxoff’

例如将图例框改为不可见:

>> legend('boxoff');

输出结果为: 在这里插入图片描述

11.改变图例的可见性:‘hide’/‘show’

例如将图例变为不可见:

>> legend('hide');

输出结果为: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3