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

如果你只会plot(x,y),那你的图将会不出意外地单薄&空洞&丑,本文将教你如何精心修饰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学位论文绘图美化工具_MATLAB绘图美化超全超实用教程相关推荐

  1. matlab学位论文出图

    matlab学位论文出图 1 学位论文中图片的注意事项 参考<西安交通大学博士.硕士学位论文要求>图片应符合以下要求 图中的标目是说明坐标轴物理意义的项目,它是由物理量的符号或名称和相应的 ...

  2. WidsMob Portrait智能肖像美化工具如何使用?WidsMob Portrait使用教程

    WisMob Portrait是一款快速直观的人像修饰器应用程序,用于自定义照片,美化自拍照,家庭成员和朋友.在WidsMob Portrait的帮助下,自定义肖像从未如此简单,您可以像专业人士一样轻 ...

  3. matlab学位论文绘图美化工具_学术论文绘图matlab版

    论文绘图是完成学术论文的一个重要环节,美观的插图能够更好地阐述结论和有效地提升文章质量.学术论文中常见的插图包括:框架图,算法说明图,数据分析图,以及实物图.常见的绘图工具中包括Matlab,pyth ...

  4. matlab学位论文绘图美化工具_推荐几个超级好用的工具,让你在论文中画出漂亮的插图...

    每次我们看到优秀期刊中的文章,比如<Nature>.<Cell>,我们都会被文章中的插图惊艳到.再瞅瞅我们自己论文中的插图,总觉得比别人low了好几个c层次.一个好看的插图绝对 ...

  5. matlab绘图坐标轴字体_matlab绘图如何定义坐标轴上的数字字体大小

    用matlab绘图如何定义坐标轴上的数字字体大小? 方法一:在画完图的Figure窗口里,通过菜单Edit-Axes Properties....-Font-Font Size即可设置. ====== ...

  6. matlab绘图坐标轴字体_MATLAB绘图(轴文本粗体,曲线粗体),Matlab,坐标轴,文字,加粗...

    最近用matlab绘制折线图,有一些常用的指令记录下来. 首先是加速比的程序代码,具体功能记录在注释里面. x1 = [8 16 32 64 128 256]; x2 = [32 64 128 256 ...

  7. 接口测试常用工具及测试方法(超全)干货

    首先,什么是接口呢? 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口. 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们 ...

  8. iOS永久签名不掉签工具,轻松签超详使用教程

    一.前言 几天前写了个「TrollStore」的使用教程,它是一个叫「opa334」的大佬发布在GitHub上的一款永久签名工具.通过它,我们可以不依赖证书就能对IPA进行"永久签名&quo ...

  9. 【抓包工具】实战:WireShark 捕获过滤器的超全使用教程

    目录 一.应用场景 二.「捕获选项」弹框界面 (1)选项卡:Input ① 接口 ② 流量 ③ 链路层 ④ 混杂 ⑤ 捕获长度(B) ⑥ 缓冲区(MB) ⑦ 监控模式 ⑧ 捕获过滤器 (2)选项卡:输 ...

最新文章

  1. 项目经理需要修炼的9件事
  2. Spark 编程模型(上)
  3. HDU - 5335 Walk Out(bfs+路径输出+贪心)
  4. 自言自语(2011.8.1)
  5. php封装图片上传,PHP文件上传封装
  6. Neo4j HA环境配置
  7. 平时上机练习的注意点(NOIP2019)
  8. Struts1+Spring+Ibatis集成开发步骤(三)
  9. kali虚拟机安装教程
  10. 2017年6月计算机排名,桌面CPU性能排行 CPU天梯图2017年6月最新版
  11. ORA-00600: internal error code, arguments: [2037]
  12. Linux需要学什么
  13. 期货交易怎么买空(期货怎么买做空)
  14. Sublime Text操作之CSS
  15. POJ 2965 The Pilots Brothers' refrigerator
  16. 生命不息,折腾不止~Vim编辑器,插件,编译,补全配置(2018)
  17. 什么样的人适合读博士
  18. FD2606S是高压高速半桥栅极驱动器IC
  19. 构建企业级云原生日志系统架构
  20. 插在计算机主板的扩展插槽,终于有人在计算机主板上放置了四个通用插槽: PCI...

热门文章

  1. 吕旭军:如何打造区块链数字资产交易?
  2. Eclipse - 更换新的工作空间后,怎么把上一个工作空间的配置复制过来
  3. 在 RedHat、 CentOS、 Fedora 上安装 Teamviewer 9(转)
  4. Anaconda虚拟环境中,让Python3使用ROS的cv_bridge
  5. IT行业歧视40岁以上人群为找工作还要谎报年龄[转]
  6. 国网站直接SHOPPING经验之总结, 和美国代购说拜拜~~新加 如何注册PAYPAL~~~~
  7. 打印机不能正常打印怎么办
  8. linux 内存查看 kvm,Linux虚拟化KVM-Qemu分析(五)之内存虚拟化
  9. css 去除png图片黑色背景色,css的filter给png图片换色
  10. 信号完整性分析中,普遍选用50Ω特性阻抗的原因