本文将详细介绍如何用matlab绘图并美化。

关于figure()

创建图窗窗口:figure()

figure()的属性:

'Name':在标题栏显示的名称,接字符串,如'Test'

'Position':在电脑屏幕上的位置和大小,后接向量[left,bottom,width,height]也就是说指定了图窗的左下角位置,再向右+width、向上+height延伸。

'unit':单位,可以选择'normalized',使得位置参数为屏幕的归一化位置,屏幕归一化坐标(x,y),(0,0)表示左下角,(1,1)表示右上角。

我的桌面

'color':图窗背景颜色,'red'、'green'、'blue'、'cyan'、'magenta'、'yellow'、'black'、'white' 和 'none',其中none表示透明。或者RGB三通道表示法[R,G,B],其中三分量都要归一化到1,即R/255,G/255,B/255。

https://ww2.mathworks.cn/help/matlab/ref/figure.html

例如:

fullfig=figure('Name','Hello','unit','normalized','Position',[0.1, 0.1, 0.3, 0.7],'color',[100/255,100/255,100/255]);

将会产生左下角位置在[0.1,0.1]、长0.3宽0.7的图窗,其名字为'Hello',其背景颜色为[100/255,100/255,100/255]也就是灰色。

关于plot()

plot(x,y)画图

'LineWidth',线条宽度,最小是1

'color',线条颜色,同上

'LineSpec',这里直接表示线的形状,不用写'LineSpec'

https://www.mathworks.com/help/matlab/ref/linespec.html

'MarkerSize'、'MarkerEdgeColor'、 'MarkerFaceColor':如果线形使用Marker,可以调节大小、边界颜色、内部颜色

例如,

>> x=0:1/pi:2*pi;

>> y=sin(x);

>> plot(x,y,'--bo','LineWidth',2,'color','blue','MarkerSize',10,'MarkerEdgeColor','black','MarkerFaceColor','red')

表示画一条如下图所示的正弦函数,'--bo'表示虚线、蓝色、采样点用圆圈标出。线形和点形以及颜色可以自由组合。

关于图注、图例、坐标轴、字体大小

命名横纵坐标

a=xlabel('Name of x axis');b=ylabel('Name of y axis');

设置标题

c=title('contents of your title');

设置图例

d=legend('y1','y2');

设置上述内容的位置、字体大小、粗细

set(a,'unit','normalized','Position',[x,y],'FontSize',number_fontsize,'FontName',name_of_font_style)

set(a,'unit','normalized','Position',[x,y,width,height],'FontSize',number_fontsize,'FontName',name_of_font_style,'LineWidth',number_linewidth);

示例:

>> x=0:1/pi:2*pi;

>> y1=sin(x);y2=cos(x);

%创建图窗%

>> figure('color','white')

%画sin(x)和cos(x)图%

>> plot(x,y1,'--bo','LineWidth',2,'color','blue','MarkerSize',10,'MarkerEdgeColor','black','MarkerFaceColor','red');

>> hold on;plot(x,y2,'--g*','LineWidth',2,'color','blue','MarkerSize',10,'MarkerEdgeColor','black','MarkerFaceColor','red');

%创建坐标轴、标题、图例的对象

>> a=xlabel('x (time)');b=ylabel('y (m)');c=title('sin(x) and cos(x)');d=legend('sin(x)','cos(x)');

%位置、大小、字体大小、字体样式设置

>> set(a,'unit','normalized','Position',[0,-0.05],'fontsize',15,'fontname','Times New Roman');

>> set(b,'unit','normalized','Position',[-0.05,1],'fontsize',15,'fontname','Times New Roman');

>> set(c,'fontsize',15,'fontname','Times New Roman');

>> set(d,'unit','normalized','Position',[0.2,0.2,0.1,0.1],'fontsize',10)

%图窗所有线条粗细设置为2

>> set(gca,'LineWidth',2)

%开启网格

>> grid on;

%设置x轴、y轴的显示范围

>> xlim([0 2*pi])

>> ylim([-1.1 1.1])

%注:如果想画到上限,只需用+inf代替上限

关于非常规坐标轴

>> set(gca,'YDir','reverse');

>> set(gca,'YDir','normal');

y坐标轴反向或正常

半对数、对数画图

semilogx(x,y);loglog(x,y)

关于参考线、参考点、标注点

横线实现方式:

利用ones(m,n)生成与y相同的纯1向量,再给它乘上你要标注的数

size(y)返回y的行列值对(m,n),

例如标y=0的浅色虚线:

>> hold on;plot(x,0*ones(size(y)),'--','LineWidth',1,'color',[100/255,100/255,100/255]);

竖线实现方式:

利用plot()两点成线

plot([x0,x0],[y_min,y_max]);

例如在Pi/2处画从0到1的竖虚线:

>> hold on;plot([pi/2,pi/2],[0,1],'--','LineWidth',1,'color',[100/255,100/255,100/255]);

小细节:如果先加图例,图例会把你画的横竖线也标上'data 1','data 2'。如果画完参考线再加legend,legend只会标注标签名数量个数据,就不会出现把参考线也标上的情况。

标注文字:text(x,y,'contents')

>> text(pi,0,'\leftarrow sin(\pi)','fontsize',15);

多个图:subplot(m,n,index)由matlab根据选定的m行n列自动设置子图尺寸

https://ww2.mathworks.cn/help/matlab/ref/subplot.html

或者需要精细化设置位置:

%设置当前图窗单位为归一化

>> set(gcf,'color','none','unit','normalized','position',[0,0,1,1]);

%设置左下角出现在(0.2,0.22)位置,宽0.55,高0.4

>> positionVector1 = [0.2, 0.55, 0.22, 0.4]; subplot('Position',positionVector)

这里画子图下面的操作和上面都一样,唯一要记住的是,每一个subplot,都相当于一个figure(),这就是说,你在每个subplot下面写的xlabel、title、legend之类的,都只会设置subplot下面的图。

子图示例:

%子图一

%设置子图位置

positionVector1 = [0.2, 0.55, 0.22, 0.4];

subplot('Position',positionVector1)

%画图

plot(A(:,2),(A(:,1)/1000),'LineWidth',2,'color','black');

%画参考线

hold on;plot(zeros(size(A(:,2))),(A(:,1)/1000),'--','LineWidth',1,'color',[100/255,100/255,100/255]);

%设置坐标轴范围

ylim([0 6371]);xlim([-2*max(abs(A(:,2))) +2*max(abs(A(:,2)))]);

%画参考线

hold on;plot([-2*max(abs(A(:,2))) +2*max(abs(A(:,2)))],[6371-670 6371-670],'--','LineWidth',1,'color',[100/255,100/255,100/255])

hold on;plot([-2*max(abs(A(:,2))) +2*max(abs(A(:,2)))],[6371-2890 6371-2890],'--','LineWidth',1,'color',[100/255,100/255,100/255])

hold on;plot([-2*max(abs(A(:,2))) +2*max(abs(A(:,2)))],[6371-5150 6371-5150],'--','LineWidth',1,'color',[100/255,100/255,100/255])

%给坐标轴命名

ylabel('r (km)');xlabel('U(r)'); set(gca,'YDir','reverse');

%修改子图线条粗细

set(gca,'LineWidth',3,'fontsize',15);

positionVector2 = [0.58, 0.55, 0.22, 0.4];

subplot('Position',positionVector2)

plot(A(:,3),(A(:,1)/1000),'LineWidth',2,'color','black');

hold on;plot(zeros(size(A(:,3))),flip(A(:,1)/1000),'--','LineWidth',1,'color',[100/255,100/255,100/255]);

ylim([0 6371]);xlim([-2*max(abs(A(:,3))) +2*max(abs(A(:,3)))])

hold on;plot([-2*max(abs(A(:,3))) +2*max(abs(A(:,3)))],[6371-670 6371-670],'--','LineWidth',1,'color',[100/255,100/255,100/255])

hold on;plot([-2*max(abs(A(:,3))) +2*max(abs(A(:,3)))],[6371-2890 6371-2890],'--','LineWidth',1,'color',[100/255,100/255,100/255])

hold on;plot([-2*max(abs(A(:,3))) +2*max(abs(A(:,3)))],[6371-5150 6371-5150],'--','LineWidth',1,'color',[100/255,100/255,100/255])

ylabel('raduis (km)');xlabel('dU(r)/dr'); %set(gca,'YDir','reverse');

set(gca,'LineWidth',3,'fontsize',15);

positionVector3 = [0.2, 0.07, 0.22, 0.4];

subplot('Position',positionVector3)

plot(zeros(size(A(:,1))),(A(:,1)/1000),'--','LineWidth',1,'color',[100/255,100/255,100/255]);

ylim([0 6371]);xlim([-1 1])

hold on;plot([-1 1],[6371-670 6371-670],'--','LineWidth',1,'color',[100/255,100/255,100/255])

hold on;plot([-1 1],[6371-2890 6371-2890],'--','LineWidth',1,'color',[100/255,100/255,100/255])

hold on;plot([-1 1],[6371-5150 6371-5150],'--','LineWidth',1,'color',[100/255,100/255,100/255])

ylabel('raduis (km)');xlabel('V(r)'); %set(gca,'YDir','reverse');

set(gca,'LineWidth',3,'fontsize',15);

positionVector4 = [0.58, 0.07, 0.22, 0.4];

subplot('Position',positionVector4)

plot(zeros(size(A(:,1))),(A(:,1)/1000),'--','LineWidth',1,'color',[100/255,100/255,100/255]);

ylim([0 6371]);xlim([-1 1])

hold on;plot([-1 1],[6371-670 6371-670],'--','LineWidth',1,'color',[100/255,100/255,100/255])

hold on;plot([-1 1],[6371-2890 6371-2890],'--','LineWidth',1,'color',[100/255,100/255,100/255])

hold on;plot([-1 1],[6371-5150 6371-5150],'--','LineWidth',1,'color',[100/255,100/255,100/255])

ylabel('raduis (km)');xlabel('dV(r)/dr');% set(gca,'YDir','reverse');

set(gca,'LineWidth',3,'fontsize',15);

%设置总标题

name=['_{' num2str(n) '}S_{' num2str(l) '}'];%latex

sgt =sgtitle(name);sgt.FontSize = 30;

%加文字

config=[ 'Eigf=' num2str(Eigf) ',Gv=' num2str(Gv) ',Q=' num2str(Q) 'Err=' num2str(Err)];

suptitle(config);

%保存图片

I=getimage(gcf);

pngname=[ num2str(n) 'S' num2str(l)];

saveas(fullfig,[filepath pngname '.png']);

最后成图:

那么如何给图加标题呢?

matlab2020之前有suptitle函数,matlab2020有sgtitle函数,和title函数差不多。

另外还有画三维图时加colorbar的细节,

https://www.mathworks.com/help/matlab/ref/colorbar.html

MATLAB画图详细教程相关推荐

  1. 计算机相关专业零基础论文画图详细教程(避免掉坑教程)

    好久没写博客了,去年一年忙忙碌碌,但是也不知道在忙些啥,各种琐事,真正静下心来学的东西.感觉真正掌握或者说做了一点事情的话,就是从零开始写了一篇会议论文,虽然质量比较水,但是也算是完整的走了一遍写论文 ...

  2. 教你用Matlab进行系统仿真 - Matlab仿真详细教程

    前言 MATLAB是美国著名公司MathWorks推出的商业数学软件.该软件为用户提供算法开发.数据可视化.数据分析等交互操作环境.本文主要介绍如何利用MATLAB进行仿真.请参见下面的详细操作. 一 ...

  3. 在matlab中导入excel,Matlab导入Excel文件中的数据的详细教程分享

    操作Matlab时还不会导入Excel文件中的数据?本文就介绍了Matlab导入Excel文件中的数据的操作内容,想要学习的朋友可以看一看下文哦,相信对大家会有所帮助的. 直接点击鼠标操作导入数据 打 ...

  4. 在MATLAB中手动安装MinGW64详细教程

    在MATLAB中手动安装MinGW64详细教程 话题背景 针对MATLAB官方License限制附件安装的问题,可以尝试线下手动自行安装 部分版本的Matlab由于License到期问题或者破解版限制 ...

  5. 在matlab中画多个图,Matlab在一个图形窗口里画多个图形的详细教程

    原创Matlab在一个图形窗口里画多个图形的详细教程 编辑:佚名 来源:PC下载网时间:2019-11-18 13:35:08 对于Matlab软件各位应该还有不懂的地方,比如说想在一个图形窗口里画多 ...

  6. matlab在凸轮中的应用,用matlab绘制凸轮教程(详细).doc

    用matlab绘制凸轮教程(详细) 首先看一下理论轮廓线的方程式 X (S0+S1)sinθ+ ecosθ Y S0+S1 cosθ+ esinθ 式中,e为偏心距,S0 sqrt(r0^2-e^2) ...

  7. matlab plot多个窗口,Matlab在一个图形窗口里画多个图形的详细教程

    Matlab在一个图形窗口里画多个图形的详细教程 作者:佚名 来源:PC下载网时间:2019-11-18 13:35:08 对于Matlab软件各位应该还有不懂的地方,比如说想在一个图形窗口里画多个图 ...

  8. Matlab AppDesigner编程教程第1章——面向对象编程

    Matlab AppDesigner编程教程第1章--面向对象编程 文章目录 Matlab AppDesigner编程教程第1章--面向对象编程 前言 一.什么是面向对象编程 二.使用步骤 1.新建类 ...

  9. Python数据分析【1】:matplotlib库详细教程

    Python数据分析:matplotlib库详细教程 一.基本介绍 1. 数据分析 2. 环境安装 二.matplotlib 1. 基本介绍 2. 基本要点 3. 散点图/直方图/柱状图 4. 画图工 ...

  10. matlab画图配色RGB+线性

    转载自https://blog.csdn.net/a_cherry_blossoms/article/details/115185831 画图的线型和符号该博主链接中可以找到:https://blog ...

最新文章

  1. EP936E的IIC
  2. 北邮OJ 102. 最远距离 北邮2012网研院复试上机题
  3. 三大主流消息中间件优缺点
  4. workflow and email in QD3 - IS_INBOX_USER method
  5. 每次启动项目的服务,电脑竟然乖乖的帮我打开了浏览器,100行源码揭秘!
  6. Vue Webpack常见问题(持续更新)
  7. HDOJ_1004_Let the Balloon Rise
  8. 数据库扩容 mysql_mysql数据库怎么扩容
  9. Maven Ant 中截取字符串
  10. 拉格朗日(lagrange)插值及其MATLAB程序
  11. linq里的select和selectmany操作 投影运算
  12. AS3文本框的操作,为密码框添加按钮
  13. python基础--面向对象之绑定非绑定方法
  14. GET 和 POST 的区别
  15. 智能名片小程序功能点实现
  16. 前台获取model中的值,json数据,json字符串,双引号变为 ‘ quto;‘
  17. 與情分析系统,包括爬虫、文本摘要、主题分类、情感倾向性识别以及可视化...
  18. 重磅!人工智能会取代科学家? 道翰天琼认知智能机器人API接口平台为您揭秘-1。
  19. [转](9)跨段跳转,短调用和长调用堆栈图
  20. return R.ok()

热门文章

  1. 《Android移动应用开发》 复习题(一)
  2. VBB、VCC、VDD、VEE、VPP 、VSS 的解释
  3. 安装vbb的一些经验(包括mysql,apache)
  4. 小米路由器R1D改造记录-安装MIXBOX
  5. 智慧农业项目建设体系之质量追溯平台建设体系
  6. 中小学创客教室建设,教育创客空间整体解决方案
  7. idea 2019.3 集成SVN
  8. linux下如何使用mysql可视化图形界面客户端查询
  9. PLC基础知识(一)—PLC入门简介
  10. proteus8找不到isis