前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教程合集 | MATLAB绘图基本操作与属性

教程合集 | MATLAB绘图基本操作与属性

作者头像
bugsuse
发布2020-11-06 11:01:27
4.7K0
发布2020-11-06 11:01:27
举报
文章被收录于专栏:气象杂货铺

周一到!从本周开始,我们一起来学习关于绘图的操作吧!之前学过了如何从文件中读取数据,有的小伙伴可能着急了,怎么学了这么久,还是不会画图呀?!今天我们从MATLAB基本图形的绘制开始学习,增强信心,之后再去学烧脑的数据处理内容~

1.图窗认识

先从认识MATLAB基本的画图GUI界面开始吧!

输入

代码语言:javascript
复制
figure;

就会生成一个最基本的图窗:

MATLAB里,图窗的含义类似于画布,在一个图窗里绘制图形,即在同一张画布上绘图,保存结果后,将出现一张图。而如果想分别绘制多张图,则需要生成多个图窗分别绘制。

那么图中每个按钮又分别是什么意思呢?这里给出一个简单的sin函数绘制的折线图例子进行说明:

点击“查看”,可以选择六个选项框,其全部选项内容包括图形工具栏、照相机工具栏、绘图编辑工具栏。在平时使用时,则最常应用到图形选项板、绘图浏览器及属性编辑器。

菜单栏全部打开时,如下所示:

那么各个图标又有哪些功能呢?

图形工具栏的功能从左到右分别为:打开新图窗、打开新文件、保存、打印、选择、放大、缩小、平移(手形工具)、旋转、数据游标、刷亮、链接、插入颜色栏、插入图例等。

绘图工具栏的功能从左到右分别为:填充(背景色)、颜色选择(包括边框和数据线)、文本颜色、字体、加粗、倾斜、对齐方式(左中右对齐)、插入(直线、单向箭头、双向箭头、文本指向性箭头、文本框、矩形、椭圆等)、固定到坐标轴、对齐分布工具(可针对图中的对象设置位置排版)。

图形选项板:包括添加子图、选择变量、插入注释(与上面绘图工具栏的插入相同)。

属性编辑器的功能为对图形的各项属性进行操作。

当选择整个Figure的属性时:

点击“更多属性”即可对如下性质进行设置:

此外,在实际应用中,属性编辑器中的“导出设置”也十分常用,在这里,小编建议大家在保存前选择“放大坐标轴至充满图形”,这样就可以避免以后出现“所见不是所得”的问题,即在MATLAB里调好的图形,保存之后其大小或相对位置却发生了改变。也可以在选项里根据要求调整渲染效果,得到不同分辨率的图形。

当选择坐标轴时,属性编辑器将显示:

因此可直接对坐标轴的各项属性进行设置。

当选择图中的数据时,其属性编辑器显示为:

并且在进行过一系列的上述操作后,可以点击“文件”——“生成代码”,将之前的一系列设置生成代码保存起来,下次使用的时候,只需要重新调用代码就可以完成使用啦!

是不是听起来就很方便,基本的注释和修改都可以在MATLAB图窗里完成,以后再也不需要用ppt大法来折腾了。

2.Figure的基本组成

在认识了MATLAB的图窗后,再来理一下MATLAB画图时候的基本逻辑吧!

新手可能会对figure和axes的概念有混淆。在实际绘图中,一张图可能会有好几个子图,这时axes表示生成的各个小图,而figure则是绘制各图的大画布。也就是说:

所以,在之后设置图形属性时,有时用到gca,有时用到gcf,可不要混淆咯~

3.绘图语句

关于绘图的语句具体语句又有哪些呢?下面这张表已经为你总结好,需要的时候查一查官方文档就可以知道其具体用法啦!

函数名称

功能

plot

绘制线状图

scatter

绘制散点图

bar

绘制二维条状图

barh

绘制二维水平条状图

bar3

绘制三维条状图

barh3

绘制三维水平条状图

area

绘制面积图

pie

绘制饼图

pie3

绘制三维饼图

stem3

绘制三维离散图

compass

绘制放射线图

feather

绘制线性放射线图

quiver

绘制场图(如风场等)

quiver3

绘制三维场图

contour

绘制等高线轮廓图

contour3

绘制三维等高线轮廓图

contourf

绘制填充的等高线图

clabel

标识等高线标签 meshc:绘制三维mesh曲线和等高线

surfc

绘制三维surf曲线和等高线

semilogx

绘制以X轴为对数坐标轴的对数坐标图

semilogy

绘制以Y轴为对数坐标轴的对数坐标图

loglog

绘制X,Y轴均为对数坐标轴的图形

errorbar

绘制带有误差棒的图

以plot为例,其基本调用方式是:

代码语言:javascript
复制
plot(x,y);

当然,也可以在plot等函数里对图像属性进行设置。

m_map工具箱中的大部分同类型图形绘制的函数与上述列表里的名称相同,不同的只是名称前需要加上m_调用。如plot函数在m_map工具箱里的调用方法即为m_plot。

4.轴属性设置常用函数

在坐标轴及图例属性设置中,常用的函数为xlabel、ylabel设置坐标轴标签;axis设置坐标轴位置;title设置标题属性;text可在图中任意位置添加文字;legend设置图例;subplot绘制子图。具体使用方法可参考官方文档。此处仅做简单的说明。

4.1 set与get函数

set函数用于设置句柄所指的图形对象的属性

如:

代码语言:javascript
复制
h=plot(x,y)
set(h, 'Color',’b’)

get函数用于获取指定句柄的图形对象属性

如:

代码语言:javascript
复制
get(gca, 'Xcolor')

注意,如果没有设置句柄,则可以:

gcf:表示当前图形窗口的句柄

gca:表示当前坐标轴对象的句柄

gco:表示当前对象的句柄

4.2 坐标轴设置

可使用xlabel和ylabel函数设置坐标轴的单位。

其他针对坐标轴设置的可选项:

'Xtick','Ytick','Ztick':设置坐标轴小刻度的范围

'Xticklabel','Yticklabel','Zticklabel':设置坐标轴刻度标签的内容

可使用axis([xmin,xmax,ymin,ymax])函数来调整坐标轴的范围。

axis off:不显示坐标轴

axis on:显示坐标轴

因此,使用方法如下:

代码语言:javascript
复制
axis([0 37 0 54]);
set(gca,'xtick',[0:50:200],'xticklabel',[],'fontname','TimesNew Roman','fontsize',12,'fontweight','bold','linewidth', 2);
ylabel('℃');xlabel('hPa');

4.3 其他

title可设置图像的标题内容,调用方式:

代码语言:javascript
复制
title("这是一个标题")

text在图上任意位置添加标签,使用方法如:

代码语言:javascript
复制
text(30,50,'text内容','color','k','FontSize',13)%30,50数字表示位置

legend设置图例属性,可更改图例标签名称:

代码语言:javascript
复制
legend('Jan','Feb','Mar')

subplot绘制子图:

代码语言:javascript
复制
h =subplot(m,n,p)
%m为行 n为列 p代表图形是m*n个图像中的第p个。

篇幅所限,一些设置颜色,字体,线型的内容在此处就不展开了,下期美化课讲colorbar的设置时一并介绍~

这里的内容对你来说太基础了,不能解决你的问题?没关系,小编已经为大家准备了各种疑难杂症的解决方法,复制下列链接到浏览器浏览,疑难杂症不再难!

微信不能打开外部链接,烦请各位复制链接至浏览器食用~

MATLAB气象海洋简单粗暴教程:by:二爷名声在外

http://bbs.06climate.com/forum.php?mod=viewthread&tid=57578

利用MATLAB对海洋要素作图时常用到的命令:by:海洋草履虫

http://bbs.06climate.com/forum.php?mod=viewthread&tid=94494

风玫瑰图MATLAB程序:by:wpp851118

http://bbs.06climate.com/forum.php?mod=viewthread&tid=24227

rose函数绘制风玫瑰图示例:by:Aires

http://bbs.06climate.com/forum.php?mod=viewthread&tid=18581

画风玫瑰图的程序及数据说明:by:西北狼

http://bbs.06climate.com/forum.php?mod=viewthread&tid=39722

m_map画风向标:by:二爷名声在外

http://bbs.06climate.com/forum.php?mod=viewthread&tid=51373

彩色流线quiver:by:磨人的小妖精儿

http://bbs.06climate.com/forum.php?mod=viewthread&tid=53500

MATLAB绘制凤羽图:by:liuyao

http://bbs.06climate.com/forum.php?mod=viewthread&tid=97149

利用MATLAB画垂直风廓线风羽图:by:cqhawk

http://bbs.06climate.com/forum.php?mod=viewthread&tid=35934

MATLAB画风廓线雷达风羽图:by:小猪巴斯蒂安

http://bbs.06climate.com/forum.php?mod=viewthread&tid=93907

MATLAB画风羽图:by:ρδτ

http://bbs.06climate.com/forum.php?mod=viewthread&tid=50041

m_map画流线:by:二爷名声在外

http://bbs.06climate.com/forum.php?mod=viewthread&tid=54071

MATLAB风场添加箭头标签的方法:by:沙颖凯

http://bbs.06climate.com/forum.php?mod=viewthread&tid=21699

MATLAB画误差阴影图:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=24954

m_map工具箱里面画矩形:by:二爷名声在外

http://bbs.06climate.com/forum.php?mod=viewthread&tid=59653

MATLAB地图上绘制矩形框:by:haobang008

http://bbs.06climate.com/forum.php?mod=viewthread&tid=45337

MATLAB画三维地形图:by:wlzhongouc

http://bbs.06climate.com/forum.php?mod=viewthread&tid=7510

[求助]MATLAB做三维图:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=94292

MATLAB画三维地形图(附带最新版的m_map):by:llw

http://bbs.06climate.com/forum.php?mod=viewthread&tid=67051

将2D全球平面地图画在3D球状地球上 Plot earth in 3D:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=40003

MATLAB 展示SCS三维海底地形图:by:Hua_Zhang

http://bbs.06climate.com/forum.php?mod=viewthread&tid=92235

泰勒图绘制:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=35864

[求助]MATLAB气象泰勒图:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=59356

MATLAB绘制类型图:by:wlzhongouc

http://bbs.06climate.com/forum.php?mod=viewthread&tid=7337

用MATLAB绘制动图:by:是兜兜啊

http://bbs.06climate.com/forum.php?mod=viewthread&tid=94383

MATLAB画SkewT-logP图:by:47779125

http://bbs.06climate.com/forum.php?mod=viewthread&tid=27252

HYSPLIT轨迹模式结果 & MATLAB 画轨迹追踪图:by:cfltwy

http://bbs.06climate.com/forum.php?mod=viewthread&tid=53626

把手教你MATLAB绘制GFS Grib2资料天气图:by:又是那隻貓

http://bbs.06climate.com/forum.php?mod=viewthread&tid=31733

利用MATLAB的m_map工具箱绘制站点气象要素等值线分布图:by:1434272731

http://bbs.06climate.com/forum.php?mod=viewthread&tid=39282

MATLAB斜温图、高空测风绘制函数:by:沙颖凯

http://bbs.06climate.com/forum.php?mod=viewthread&tid=27066

MATLAB 利用SODA数据绘制南中国海SCS四季流场图:by:Hua_Zhang

http://bbs.06climate.com/forum.php?mod=viewthread&tid=92239

利用MATLAB对CALIPSO中VFM数据绘图与结果讨论:by:kongfeng0824

http://bbs.06climate.com/forum.php?mod=viewthread&tid=15999

MATLAB丨绘制对数坐标剖面图(含代码、注释、数据、函数、参考链接等):by:Chwithin

http://bbs.06climate.com/forum.php?mod=viewthread&tid=96669

MATLAB画时间剖面图:by:windprofiler

http://bbs.06climate.com/forum.php?mod=viewthread&tid=8414

MATLAB丨绘制引导气流回归场(风场矢量)并进行显著性检验(含代码和数据):by:Chwithin

http://bbs.06climate.com/forum.php?mod=viewthread&tid=96795

利用nc数据画sst等值线图,外另加流场图:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=21171

水深数据+海岸线数据提取绘图(海洋科学): by:Aires

http://bbs.06climate.com/forum.php?mod=viewthread&tid=10281

M_map绘制台风路径的一个实例_新手入门笔记:by:Wenfang

http://bbs.06climate.com/forum.php?mod=viewthread&tid=49995

分享一个绘台风路径的m程序:by:lnsyyzp

http://bbs.06climate.com/forum.php?mod=viewthread&tid=5100

[讨论] 使用m_streamline出现问题:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=96640

[求助]MATLAB用contourf画图,如何去掉黑色的轮廓线:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=35837

[求助]请问怎么绘制这种因子重要性的图

http://bbs.06climate.com/forum.php?mod=viewthread&tid=95954

[求助]MATLAB subplot怎么在多幅子图只显示一个colorbar

http://bbs.06climate.com/forum.php?mod=viewthread&tid=35888

[求助]MATLAB子图间距问题:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=94257

[求助]MATLAB利用nc数据画图出现空白缝隙:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=25027

[求助]MATLAB画出平滑的等值线分布图:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=88643

[求助]显著性区域打点填充:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=39807

[求助] 如何MATLAB画出这样的坐标轴:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=68189

MATLAB更改x轴日期表示形式--图窗法:by:652554221

http://bbs.06climate.com/forum.php?mod=viewthread&tid=93974

分享一个将figure中axes图像的局部放大功能在同一个axes上的小程序:by:最后一个匈奴

http://bbs.06climate.com/forum.php?mod=viewthread&tid=40634

MATLAB美化出图工具MATLAB_plot_cbrewer:by:geyeni

http://bbs.06climate.com/forum.php?mod=viewthread&tid=31633

MATLAB精彩绘图资料:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=12289

回馈气象家园,奉献手中全部MATLAB资料:by:龙行天下

http://bbs.06climate.com/forum.php?mod=viewthread&tid=17750

MATLAB图形保存方法【总结】(save figure):by:kongfeng0824

http://bbs.06climate.com/forum.php?mod=viewthread&tid=16068

matlab官方帮助文档:

https://ww2.mathworks.cn/help/matlab/graphics.html?s_tid=CRUX_lftnav

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 气象杂货铺 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档