Matlab绘制图形知识点总结(一)

        在实际的操作中,我们能够通过代码设计轻松命令Matlab绘制图形,下面是为总结Matlab最常用的几种绘图函数(包括二维与三维制图)。

一、二维图像绘制函数plot()

        1.plot(X,Y);       

        当且仅当X,Y均为实数向量且维数相同(相同长度的行向量或者相同长度长度的列向量)时有效,Matlab将会按照其顺序一一对应其横坐标及纵坐标即  [X(i),Y(i)]。若X或者Y均为复数变量,则会忽略虚数部分。

X=[1 2 3 4 5 6 7 8];    %均为行向量或者均为列向量
Y=[8 7 6 5 4 3 2 1];
plot(X,Y);
X=[1 2 3 4 5 6 7 8+6i];    %Matlab画图时提示警告自动忽略虚数部分
Y=[8 7 6 5 4 3 2 1+6i];
plot(X,Y);

(上述两者画出来的图形一致)

        若X、Y一个为向量,一个为矩阵,且向量长度等于矩阵的行数或者列数,函数会按行或者列将矩阵分解为多个向量分别与X\Y一一对应,在图像中分别画出其对应图线。

X=[1 2 3 4 5 6 7 8];    %X为向量
Y=[8 7 6 5 4 3 2 1;7 6 5 4 3 2 1 0; 6 5 4 3 2 1 0 -1];   %Y为三行八列的矩阵
plot(X,Y);

 (画出来的效果如上)

       

         2.plot(X1,Y1, X2,Y2, .....,Xn,Yn)

        Matlab支持多函数同时画图,且在同一画布上展现,效果不多赘述。

        

        3.plot(X,Y,S)

在Matlab中可以自定义其图像样式,根据自己的风格或者论文的要求可以切换多种线与坐标的样式。下面概括出一些常用的定义符。(注意黑色的简写不是b而是k)

        (1)线形、颜色定义符

线形及颜色符号表

定义符----.
线形实线(Matlab默认)划线点线点划线
定义符rgbc
颜色红色(red)绿色(green)蓝色(blue)青色(cyan)
定义符mykw
颜色品红(magenta)黄色(yellow)黑色(black)白色(white)

        (2)标记类型定义符

标记类型定义符表

定义符+o*.x
标记类型加号小圆圈星号实点交叉号
定义符d^v><
标记类型菱形(diamond)向上三角形向下三角形向右三角形向左三角形
定义符shp
标记类型正方形(square)正六角星(hexagon)正五角星(pentagon)

        (3)指定标记大小及颜色

MarkerSize标记大小,指定为正值
MarkerEdgeColor标记轮廓颜色,指定为颜色名称或 RGB 三元组
MarkerFaceColor标记内部颜色,指定为颜色名称或 RGB 三元组

例如像下列例子:

X=-pi:pi/10:pi;
Y= sin(X);
plot(X,Y,'--mv','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
%'--mv'表示图像用划线表示,品红色,所在具体值用向下三角形表示
%后面的MarkerSize、MarkerEdgeColor、MarkerFaceColor分别表示标记符的大小、边框颜色、内容颜色

效果如下:(注意MarkerFaceColor若用RGB三元组表示的话各元素需要用空格隔开且可不用‘’(引号)包裹,但是若用颜色名称表示的话则需要‘’包裹,如‘g’)

        该部分需要读者多去实践观察其现象,可以对着上面的图标试一下具体效果。

二、坐标轴设置函数

        Matlab中的绘图常常与坐标轴有关,下列概括的是常用的坐标轴函数。

坐标轴设置函数

函数功能
axis设置横纵坐标轴的区间
xlable/ylable添加横纵坐标轴的标注
legend给坐标轴中的图形添加图例
text在坐标轴中添加字符串
grid添加网格
box添加边框
xlim/ylim设置横纵坐标区间
        1.axis可以用来设置横纵坐标轴的区间,添加不同的代码可以实现多种要求。(该行可不加‘;’)

           (1)       axis([xmin,xmax,ymin,ymax])

        控制在画布中的x/y轴的区间,在上知识点的代码基础上加上此行代码,其效果为:

(无论其要求的区间是否有值,画布都会画出)

axis([-5,10,-2,2])

         (2)      axis equal

        控制画布的呈现出来的图像横坐标与纵坐标的刻度值相等。

 (横纵坐标的刻度值皆为1)

         (3)      axis square

        控制画布的呈现出来的图像横纵坐标长度相等。(此时画布形状为正方形)

         (4)       axis auto

        系统默认样式(默认值),将画布就可能填满。

        2.xlim/ylim函数,可设置或者返回区间函数

         (1)      xlim  (ylim)

        返回横坐标区间,返回的是一个二维行向量  [min  max]

 

纵坐标方向也是如此方法。

         (2) xlim([xmin,xmax])   (ylim同理)

        用于设置横纵坐标的画布展示区间,与上述的axis([-5,10,-2,2])的方法类似,也不多赘述了

  
      3.legend函数

        在画布中的图形添加图示文字。

        (1)legend('str1第一个字符串',‘str2第二个字符串’,'str3第三个字符串'......)

        它会按照代码之前的画图顺序给每一个图像附近标上每一个字符串,因此顺序很重要。在这里补充一个知识点:当需要在一个画布中画出两条或以上曲线时,在每一次作图时需要在后面加上“hold on;”以让下一次画图仍保持在该画布上。

X=-pi:pi/10:pi;
Y1= sin(X);
Y2= cos(X);
plot(X,Y1,'--mv','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
hold on;
plot(X,Y2,'--m^','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
hold on;
legend('sinx','cosx')

        例如上述代码,legend内部的第一个字符串会去匹配第一条曲线即X-Y1,后面类似。运行的结果如下:

(图示若没有修改其位置则默认在右上角)

         (2)根据曲线图像需要修改图示位置时

        legend('str1第一个字符串',‘str2第二个字符串’,'str3第三个字符串'...,‘Location’,'direction')

        有时候由于图示在默认位置处遮挡住图像需要修改位置时,可以在后面加上location属性。

        其方向有

northwestnorthnortheast
westeast
southwestsouthsoutheast

        上述例子将legend函数改为“legend('sinx','cosx','Location','northwest')”,可以让函数分布更加规整好看。

        

         4.text函数        text(x,y,'string')

        text函数可以在坐标轴的制指定位置添加字符串,用以更直接对图像的解释。其坐标位置(x,y)与横纵坐标分布有关。

        以上述图像为例,若想在坐标轴(-3,0.3)处加上字符串“y=sinx”用以对图线的解释,则可以在原有代码上加上text函数,即

X=-pi:pi/10:pi;
Y1= sin(X);
Y2= cos(X);
plot(X,Y1,'--mv','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
hold on;
plot(X,Y2,'--m^','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
hold on;
legend('sinx','cosx','Location','northwest')
text(-3,0.3,'y=sinx')

效果如下:

 5.label函数        xlabel/ylabel

        label函数用于给横纵坐标添加标注,调用形式为xlabel('str1')或者ylabel('str2'),实现比较简单不过多叙述了。

三、分贴小结

        由于知识点过多一个帖子分享篇幅较大,因此打算多写一个帖子分享后面关于画图的知识点,若有需要继续学习的可以找后面的帖子研究一下。若有什么问题可以在评论区留言,或者私聊我,我会力所能及的帮助一同学习的人。大家一同进步吧!

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Matlab中,图像坐标是指图像中每个像素的位置。图像的左上角像素的坐标通常被定义为(1,1),向右为x轴正方向,向下为y轴正方向。可以使用Matlab的imread函数读取图像,并使用imshow函数显示图像。\[3\]如果需要对图像进行坐标变换,可以使用仿射变换函数imwarp,并定义一个变换矩阵T来实现坐标的变换。\[2\]例如,可以将原图像的左上角坐标(0,0)变换到新的坐标(50,50),同时将图像的宽度缩小到原来的一半,高度不变。可以使用以下代码定义变换矩阵: T = \[0.5 0 50; 0 1 50; 0 0 1\]; 然后,可以使用imwarp函数进行坐标变换,并显示变换后的图像。\[3\] #### 引用[.reference_title] - *1* [Matlab拾取图片坐标保姆级教程](https://blog.csdn.net/matlabstudy01/article/details/123609502)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [基于MATLAB进行图像坐标转换](https://blog.csdn.net/ai52learn/article/details/131333591)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值