首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab—基础绘图

matlab—基础绘图

作者头像
mathor
发布2018-07-24 14:52:58
1.4K0
发布2018-07-24 14:52:58
举报
文章被收录于专栏:mathormathor

九、基础绘图

9.1 plot()

plot函数是matlab中用于作图的函数,常用格式为:plot(x,y),x代表着横坐标,y代表纵坐标,一般情况下如果是画一组连续的图,x和y一般都是矩阵

还有一种格式:plot(y),如果只给一个参数,那么这个参数默认是代表纵坐标,而横坐标的值默认是1,2,3......举个例子,我们输入plot(cos(0:pi/20:2*pi));,做出来的图是这样的

图9-1 plot(cos(0:pi/20:2*pi))

9.2 hold on/off

如果我们写两个plot函数,plot(cos(0:pi/20:2*pi));plot(sin(0:pi/20:2*pi));,他会不会把这两个图画出来,答案是不会,因为matlab在执行代码的时候,后面的画图会把前面的画图清空掉,所以只会有一个图画出来,那如果想把这两个函数的图都画出来,应该怎么做,下面给出代码

图9-2 hold on

也可以先画一个图,然后hold on,然后再画一个图,hold on的顺序可以变

9.3 plot style

我们还可以给图加上我们想要的样式,调用格式:plot(x,y,’str’);,str的位置是我们用的参数,具体有哪些参数,见下图

图9-3 plot type

示例:

图9-4 示例1

更多的type,可以访问mathworks网站内查看:https://cn.mathworks.com/help/matlab/ref/linespec.html?s_tid=gn_loc_drop

9.4 legend()

光有图,没有说明标签也不行,所以我们需要用到legend这个函数,以一个例子来说明,我们首先做四个函数的图像

图9-5 示例2

我们看这个图很不直观,因为缺少了标签说明,下面我们就给他加上,代码为:legend(‘sin(x)’,’cos(x)’,’Sigmoid’,’Gauss function’);,他会根据你plot函数的顺序,依次给对应的线标上对应的标签

图9-6 legend函数

9.5 title() and ?label()

到现在为止,其实我们这个图还不算完整,还缺少横纵坐标的说明,以及标题,所以接下来我们就要用到几个函数来完善它:title()、xlabel()、ylabel()、zlabel()、下面给出示例

图9-7 坐标以及标题

9.6 text() and annotation()

如果我们需要在图像中加入说明性的文本和某些图形比如说箭头,就会分别用到两个函数,一个是text(),一个是annotation(),下面给出示例图

图9-8 示例3

我们首先观察这个函数的横坐标,是从0到3,所以我们要用代码x = linspace(0,3);即可,这里y的函数我也直接给出来y = x.^2.*sin(x);,再看图上,有一天线段x = 2,他需要用到line函数,通常其调用格式为:line([x起始坐标,x终止坐标],[y起始坐标,y终止坐标]);,所以如果要画出我们图上的这条直线,代码就应该是line([2,2][0,x.^2.*sin(2)]);

有了以上的函数,我们看看做出的图是什么样的

图9-9 示例4

下面我们就要开始讲解如何在图上做出文本以及箭头标志

首先我们先考虑一个问题,那一串积分符号是如何打出来的?这里大家如果有latex基础应该会知道,没有的话我直接给出代码不用过多解释,了解一下即可

图9-10  str本文

文本有了以后,我们需要用text()函数写进去,其调用格式为:text(x坐标,y坐标,str,’Interpreter’,’latex’);,后面的’Interpreter’,’latex’这个是固定格式,填上去就行了。

接下来我们要用到annotation()函数画箭头,其调用格式为:annotation(‘shape’,’x’,[x起始位置,x终止位置],’y’,[y起始位置,y终止位置]);,这个annotation函数用起来比较复杂,我把参数一个一个讲,首先是’shape’,这个参数可以有很多值,具体见下表

shape参数

说明

line

线

arrow

箭头

doublearrow

双箭头

textarrow

带文本框的箭头

shape参数讲完了,然后就是这个x,y坐标的问题,这里要注意,这个函数中的坐标并不是我们图像里对应的坐标,而是我们进行归一化以后的坐标,什么叫归一化?假设一个图的宽w,高h,坐标[x,y],归一化以后的坐标就是[x/w,y/h]

由此我们就能做出这个箭头了,下面给出完整代码

图9-11 annotation and text

9.7 Figure Adjustment

其实matlab画图远不止这点内容,还有很多可以修改的部分,下面的内容我们就是讲,如何优化一个图

首先优化一个图,我们可以修改这个图的哪些属性?Font、Font size、Line width、Axis limit、Tick position、Tick label......

那么我们如何修改这些属性呢?

图9-12 编辑图形属性

如果你觉得这些还不够,你可以选择更多属性

图9-13 更多属性

9.8 Multiple Figures

记得我们一开始讲过如何将两个函数画在同一张图上,当时用的方法是hold on/off,那么现在问题来了,如果我想画两个函数,在两张图上,应该怎么做呢?下面给出代码

图9-14 figure

其实只需要在每个plot函数前面,加上figure即可

9.9 subplot()

如果说,我现在要求在一个figure,也就是一个画布上,画很多不同的图,应该怎么画,要用到的函数就是subplot(),其调用格式为:subplot(m,n,x);,下面用一张图来解释其中的参数

图9-15 subplot

下面我们给个示例,让大家更清楚的了解subplot的用法

图9-16 示例5

为什么我们画的同一张图,x,y的值都是一样的,但是显示出来的图像却不一样?有兴趣的读者可以百度看看axis的作用就能明白了,这里我就不做多讲解了

9.10 Save Figures

我们有时候花完了图,想要保存,这时候就要用打saveas函数,其调用格式为:saveas(gcf,’filename’,’formattype’);,gcf就是你当前图像的默认的”名字”,filename也不用多说,就是你给你保存的图像起个名字,关键是这个formattype,它其实有很多参数,见下图

图9-17 formattype

下面给个示例

图9-18 示例6

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档