原标题:教程合集 | MATLAB绘图基本操作与属性
周一到!从本周开始,我们一起来学习关于绘图的操作吧!之前学过了如何从文件中读取数据,有的小伙伴可能着急了,怎么学了这么久,还是不会画图呀?!今天我们从MATLAB基本图形的绘制开始学习,增强信心,之后再去学烧脑的数据处理内容~
1.图窗认识
先从认识MATLAB基本的画图GUI界面开始吧!
输入
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为例,其基本调用方式是:
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函数用于设置句柄所指的图形对象的属性
如:
h=plot(x,y)
set(h, 'Color',’b’)
get函数用于获取指定句柄的图形对象属性
如:
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:显示坐标轴
因此,使用方法如下:
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可设置图像的标题内容,调用方式:
title( "这是一个标题")
text在图上任意位置添加标签,使用方法如:
text( 30, 50, 'text内容', 'color', 'k', 'FontSize', 13)% 30, 50数字表示位置
legend设置图例属性,可更改图例标签名称:
legend( 'Jan', 'Feb', 'Mar')
subplot绘制子图:
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
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
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
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
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
本期内容到此结束! 意犹未尽?
欢迎到家园 Matlab板块,一起讨论你的疑问吧!
http://bbs.06climate.com/
排版:pique号上的送别返回搜狐,查看更多
责任编辑: