Matlab绘图中的一些技能

news2024/11/13 19:33:44

目录

1、matlab坐标轴设置多种字体(复合字体)

2、matlab图片中title生成的标题转移至图像下端

3、指定对应格式和期望dpi的图像进行保存、以及不留白保存

4、设置字体字号(x、y轴,标题。全局字体等)

5、设置刻度值信息,只有左、下有边框等

6、指定x、y轴刻度值

7、利用插值绘制热力图、或无插值热力图

 8、自定义RGB颜色绘图

9、绘制多个组图、及相关设置。包括组图x、y轴标签、标题,以及组图色条等

10、自定义色条标签


Matlab的帮助文档、很全面,非常好:图形 - MATLAB & Simulink - MathWorks 中国

clc;       %clc的作用就是清屏幕
clear;     %clear是删除所有的变量
closeall;  %close all是将所有打开的图片关掉。

1、matlab坐标轴设置多种字体(复合字体)

x = 0:0.01:2*pi;
y = sin(x);
plot(x,y);
xlabel(['\fontname{宋体}长度\fontname{Times new roman} (mm)'])

2、matlab图片中title生成的标题转移至图像下端

xlabel({'bbb','ccc'})

3、指定对应格式和期望dpi的图像进行保存、以及不留白保存

方法一:无法去除留白

img =gcf;  %获取当前画图的句柄
print(img, '-dpng', '-r600', './img.png')  %即可得到对应格式和期望dpi的图像

方法二:可以去除留白

也可以使用 exportgraphics 函数保存内容,此函数从 R2020a 开始提供。此函数围绕您的内容提供相同的精确裁剪,还提供了其他选项。例如,您可以保存图像文件并指定分辨率。

img =gcf;  %获取当前画图的句柄
exportgraphics(img,'myplot.png','Resolution',300)  %即可得到对应格式和期望dpi的图像

4、设置字体字号(x、y轴,标题。全局字体等)

% 字体和字号
hTitle = title('Visualization of air flow data over North America'); % 设置标题
hXLabel = xlabel('xaxis'); % 设置x轴标签
hYLabel = ylabel('yaxis','FontSize', 11); % 设置y轴标签
set(gca, 'FontSize', 10, 'FontName', 'Arial') % 设置全局字体
set([hXLabel, hYLabel], 'FontSize', 11, 'FontName', 'Arial') % 设置x、y轴标签字体

5、设置刻度值信息,只有左、下有边框等

set(gca, 'Box', 'off', ...                                   % 边框
         'LineWidth',1,...                                  % 线宽
         'XGrid', 'off', 'YGrid', 'off', ...                 % 网格
         'TickDir', 'out', 'TickLength', [.02 .01], ...      % 刻度
         'XMinorTick', 'off', 'YMinorTick', 'off', ...       % 小刻度
         'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1])        % 坐标轴颜色

6、指定x、y轴刻度值

xticks([2,4,6,8,10])
% xticklabels({'2','4','6','8','10'})

yticks([1,2,3,4])
% yticklabels({'1','2','3','4'})

7、利用插值绘制热力图、或无插值热力图

x=[2,4,6,8,10];
y=[1,2,3,4];
[x_grid,y_grid]=meshgrid(x,y);
z= [95,92,94,91,90;
    84,98,87,89,95;
    86,95,89,91,95;
    91,90,92,94,93];

% 进行插值的重要参数shading interp;
pcolor(x_grid,y_grid,z);colormap("parula");shading interp;colorbar;

或者这样绘制插值热力图:

s=pcolor(x_grid,y_grid,z);colormap("parula");colorbar;
s.FaceColor = 'interp'; % 插值
set(s,'linestyle','None'); % 不显示网格

绘制无插值热力图:

s=pcolor(x_grid,y_grid,z);colormap("parula");colorbar;
set(s,'linestyle','-','EdgeColor',[1 1 1]); % 设置网格样式和颜色

 8、自定义RGB颜色绘图

color_1=[0 0 128]/255;
color_2=[121 255 125]/255;
color_3=[128 0 0]/255;

num12=100;num23=100;
R_mat=[linspace(color_1(1),color_2(1),num12),linspace(color_2(1),color_3(1),num23)];
G_mat=[linspace(color_1(2),color_2(2),num12),linspace(color_2(2),color_3(2),num23)];
B_mat=[linspace(color_1(3),color_2(3),num12),linspace(color_2(3),color_3(3),num23)];
color_map_RGB=[R_mat',G_mat',B_mat'];
figure(2)

pcolor(x_grid,y_grid,z);colormap(color_map_RGB);colorbar;

9、绘制多个组图、及相关设置。包括组图x、y轴标签、标题,以及组图色条等

  • 组图绘制

方法一:即在设置好绘图参数后,绘制下一个图时使用 nexttile 命令。可以压缩间隔。非常推荐。点击链接查看使用方法

从 R2019b 开始,您可以使用 tiledlayout 函数在图窗中创建分块图。该函数具有用于最小化绘图周围空间的选项。

通过调用 tiledlayout 函数,创建一个 2×2 分块图布局。要最小化绘图之间的空间,请将 'TileSpacing' 名称-值对组参数设置为 'compact'。要使布局周围的空间最小化,请将 'Padding' 名称-值对组参数设置为 'compact'。下一步,调用 nexttile 函数创建第一个坐标区,并调用 plot 函数在坐标区中绘图。然后再创建三个坐标区和绘图。

t = tiledlayout(2,2,'TileSpacing','Compact','Padding','Compact');
nexttile
plot([0 1])
nexttile
plot([1 0])
nexttile
plot([0 1 0 1])
nexttile
plot([1 0 1 0])

如何自定义组图,例如一图占两列等

调用 nexttile 函数以创建占据两行三列的坐标区对象。

nexttile([2 3]); % 即修改此代码,占两行三列。此时绘图应该在上一个nexttile之后,后一个图需要占占两行三列的情况
bar([1 2 3 4],scores)
legend('Team 1','Team 2','Team 3','Location','northwest')

% Configure ticks and axis labels
xticks([1 2 3 4])
xlabel('Game')
ylabel('Score')

% Add layout title
title(t,'April Bowling League Data')

直接指定在第几个框画图:

要从特定位置开始放置坐标区对象,请指定图块编号和跨度值。

t = tiledlayout(3,3);
nexttile(7)

更加灵活的使用:

显示一个带有图例的较大绘图。调用 nexttile 函数以将坐标区的左上角放在第五个图块中,并使坐标区占据图块的两行和两列。绘制所有团队的分数。将 x 轴配置为显示四个刻度,并为每个轴添加标签。然后在布局顶部添加一个共享标题。

nexttile(5,[2 2]);

方法二:直接调用 subplot,用法和python一样。但是好像不能压缩间隔。

从 R2019b 开始,您可以使用 tiledlayout 函数在图窗中创建分块图。该函数具有用于最小化绘图周围空间的选项。(如果您使用的是较早的版本,您可以使用 subplot 函数来创建分块图。不过,subplot 函数没有用于控制绘图周围空间的选项。

figure(1)           % define figure
subplot(2,2,1);     % subplot(x,y,n)x表示显示的行数,y表示列数,n表示第几幅图片
plot([0 1])
subplot(2,2,2);
plot([1 0])
subplot(2,2,3);
plot([0 1 0 1])
subplot(2,2,4);
plot([1 0 1 0])

  • 组图标签

通过使添加共享标题和共用轴标签ttitlexlabelylabel功能。通过移除移动地块靠得更近X从上图轴刻度标记和设置TileSpacing的属性t'compact'。 

% Add shared title and axis labels
title(t,'My Title');
xlabel(t,'x-values');
ylabel(t,'y-values');

% xticklabels(ax1,{1,5}); %定义ax1图的x轴标签
t.TileSpacing = 'compact';
  • 组图色条
%设置组图的色条
cb = colorbar;
cb.Layout.Tile = 'east';

10、自定义色条标签

contourf(peaks)
colorbar('Ticks',[-5,-2,1,4,7],...
         'TickLabels',{'Cold','Cool','Neutral','Warm','Hot'})

 给色条添加标题

surf(peaks)
c = colorbar;
c.Label.String = 'Elevation (ft in 1000s)';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/456588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ConcurrentHashMap是如何保证线程安全的

ConcurrentHashMap是如何保证线程安全的 定义和问题解决JDK 1.7实现原理JDK 1.8性能优化总结 定义和问题解决 ConcurrentHashMap相当于HashMap的多线程版本。 它的功能本质上和HashMap没有什么区别,因为HashMap在并发操作的时候会出现各种问题,比如&am…

Android混淆和反混淆

本篇来介绍下Android的混淆和反混淆,说起混淆,大家都会很自然地想到ProGuard,此外还有R8。事实上,AGP3.3之后,官方默认使用R8做代码优化、混淆和压缩。ProGuard和R8常常用于混淆最终的Android项目,增加项目…

Vue-router【VUE】

6. vue-router 6.1 相关理解 6.1.1 vue-router 的理解 路由就是一组key-value的对应关系。多个路由,需要经过路由器的管理vue是一个插件库,专门用来实现SPA应用。 6.1.2 对SPA应用的理解 单页 Web 应用(single page web application, SP…

C++基础阶段入门 (1)

1.C统一初始化: 初始化列表解决方案: //C语言的初始化方案 int main() {int a 10;int* ip nullptr;int ar[] { 12,23,34,45,56,67 }; } C 初始化:使用{ } int main(){//char ch a;char ch{ a };//int a 10;int a{ 10 };int b int(10);int x{ 10…

企业软文怎么写吸引人?教你几招

企业每年都要投放大量的商业软文到热门的内容平台上,也许现在你阅读的某篇文章,就是一篇企业软文。 真正厉害的软文在于你根本看不出来这是一条广告,从而让你心甘情愿的为某个产品掏腰包。企业软文到底怎么写才吸引人,接下来伯乐…

sfavsrv导致主机负载高

下午接客户电话,监控告警了,主机负载高,登录后top查看,确实比较的高 再次查看负载高的cpu发现是sfavsrv 吓了一跳,还以为中毒了,发给客户检查是否自行部署了第3方软件,确实第3方的,关…

如何将pdf图片文字转换成word 文字word图片怎么转换pdf

如今大家在工作中常常会运用到电脑来办公,电脑的运用大大提高了我们的工作效率,在带来机会的同时同样也带来了新挑战。 pdf图片怎么转换成word文档?PDF格式是一种常用的文档格式,它可以保持文档内容和格式的完整性,但是…

4月有8本SCIE期刊被剔除(附MDPI/Frontiers/Hindawi最新在检期刊)

2023年4月SCI、SSCI期刊目录更新 2023年4月18日,科睿唯安更新了WOS期刊目录,继上次3月WOS期刊目录剔除50本SCIE&SSCI期刊之后,此次4月更新又有8本SCIE期刊发生变动,其中有4本期刊被踢出SCIE数据库,4本期刊更改了名…

QMS-云质说质量 - 2 你真的知道什么是质量吗

云质QMS原创 转载请注明来源 作者:王洪石 引言 暴露的只是冰山一角 注:()中为ISO9000:2015 质量管理体系基础和术语的编号 一个组织的质量管理(3.3.4),可包括制定质量方针(3.5.9)和质量目标(3.7.2),以及通…

Web 攻防之业务安全:接口未授权访问/调用测试(敏感信息泄露)

Web 攻防之业务安全:接口未授权访问/调用测试 业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库,中间件等)、业务系统自身(软件或设备)、业…

火车站闸机web3d数字展示平台全方位动态呈现设备细节

智能互联网时代,传统的图片、文字、视频等产品展示方式,因为缺少互动性,很难引起用户的兴趣,已经逐渐失去了宣传优势。 Web3D交互展示技术的出现,让众多品牌和企业找到了新的方向,线上产品展示不在枯燥无趣…

少儿编程 中国电子学会图形化编程等级考试Scratch编程一级真题解析(选择题)2023年3月

2023年3月scratch编程等级考试一级真题 选择题(共25题,每题2分,共50分) 1、下列说法不正确的是 A、可以从声音库中随机导入声音 B、可以录制自己的声音上传 C、可以修改声音的大小 D、不能修改声音的速度 答案:D…

计算机网络第1章(概述)

文章目录 1.1、计算机网络在信息时代的作用1.2、因特网概述1、网络、互连网(互联网)和因特网2、因特网发展的三个阶段3、因特网的标准化工作4、因特网的组成 1.3 三种交换方式1、电路交换(Circuit Switching)2、分组交换&#xff…

Composer使用教程

Composer使用教程 前言1.Composer 简介2. 下载与安装2.1 局部安装2.2 全局安装2.3 更新composer2.4查看composer2.5 安装composer镜像加速 3. composer的使用3.1初始化3.2安装第三方包 4. 自动加载器4.1 加载非 class 文件4.2 加载自己写 class 文件4.3 PSR-4 自动加载规范 5. …

【脱产二站上岸】上海交大819复习经验总结

笔者来自通信考研小马哥23上交819全程班学员 本科西南某985,成绩排名中下(面试被老师疯狂吐槽),一战本校,初试分数差10来分被刷。21年12月考完数学和专业课出来就知道考不上了,分数一出就下决心二战&#…

软件测试,想找一份20k以上的工作需要掌握哪些知识?

都知道IT行业是高薪人员的聚集地,但想要成为高薪程序员却并不容易。月薪20k是测试工程师的一个门槛,想要突破就必须掌握更多的技能。 因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极…

Python列表和字典前面为什么要加星号(**)?

人生苦短,我用python 今天来和大家一起学习一下为什么Python列表和字典前面会加星号()?** python 安装包资料:点击此处跳转文末名片获取 Python 中, 单星号*和双星号**除了作为“乘”和“幂”的数值运算符外&#xff…

【python的pdb调试简单了解一下?】

调试是程序开发过程中的重要环节,它可以帮助开发人员识别和解决程序中的错误和问题。Python 提供了一个内置的调试器 pdb(Python Debugger),可以帮助开发人员逐行分析代码、查看变量值、跟踪函数调用等。 入门 要使用 pdb 调试器…

Numpy从入门到精通——存读矩阵以及读取矩阵中的数据

这个专栏名为《Numpy从入门到精通》,顾名思义,是记录自己学习numpy的学习过程,也方便自己之后复盘!为深度学习的进一步学习奠定基础!希望能给大家带来帮助,爱睡觉的咋祝您生活愉快! 这一篇介绍《…

c#期末复习题重点难点题

2. (单选题, 9分)在.NET中,.NET Framework由( )组成。 A. FCL和CLR -开发库和运行环境B. ADO.NETASP.NET -数据操作和web框架C. CLS和CTS -语法规范和类型规范 即所有语言和语法规范 和 各语言间的类型互操作性规范D. Winform和ASP.NET…