Matlab绘图中的一些技能

news/2024/3/28 19:15:47/文章来源:https://blog.csdn.net/qq_45100200/article/details/130342857

目录

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.luyixian.cn/news_show_102958.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

引领文旅新体验!实时云渲染助力打造“永不落幕”的湾区文采会元宇宙

2022年11月25日至27日,2022年粤港澳大湾区公共文化和旅游产品(东莞)采购会(简称“湾区文采会”)在广东省东莞市文化馆举行。 文采会期间,文采会元宇宙线上虚拟展厅全新亮相,这艘承载着科技与文化…

5款十分小众的软件,知道的人不多但却很好用

今天推荐5款十分小众的软件,知道的人不多,但是每个都是非常非常好用的,有兴趣的小伙伴可以自行搜索下载。 1.视频直播录制——OBS Studio OBS Studio可以让你轻松地录制和直播你的屏幕、摄像头、游戏等内容。你可以使用OBS Studio来创建多种…

Mysql设置表只存储一段时间的数据

使用MySQL的事件调度器(Event Scheduler)来定期删除表中的数据。 假设你要删除的表是mytable,并且表中有一个名为created_at的日期时间类型的列,存储了每条记录的创建时间。你可以通过以下步骤设置表只存储30天的数据&#xff1a…

机器学习 协同过滤算法

协同过滤算法 协同过滤算法是根据已有的数据来推测出未知的数据,从海量的数据中找到相似度达到指定范围的数据,而这些数据成为你的邻居,系统将会为你推荐心仪的物品。 余弦相似法 通过计算两个向量的夹角余弦值来评估它们的相似度 修正余弦…

《站在巨人的肩膀上学习Java》

Java从诞生距今已经有28年了,在这段时间里,随着Java版本的不断迭代,Java新特性的不断出现,使得Java被使用的越来越广泛。在工程界Java语言一直是大家最喜欢的语言之一,Java一直排行在编程语言热门程度的前3名。 可想而…

从0搭建Vue3组件库(六):前端流程化控制工具gulp的使用

随着前端诸如webpack,rollup,vite的发展,gulp感觉似乎好像被取代了。其实并没有,只不过它从台前退居到了幕后。我们仍然可以在很多项目中看到它的身影,比如elementplus、vant等。现在gulp更多的是做流程化的控制。 比如…

delta.io 参数 spark.databricks.delta.replaceWhere.constraintCheck.enabled

总结 默认值true 你写入的df分区字段必须全部符合覆盖条件 .option("replaceWhere", "c2 == 2") false: df1 overwrite tb1: df1中每个分区的处理逻辑: - tb1中存在(且谓词中匹配)的分区,则覆盖 - tb1中存在(谓词中不匹配)的分区,则append - tb1中不存…

今天试了试chatgpt

今天试了试chatgpt,真是服了 arcade? Arcade是一个Python游戏开发库,它提供了一系列的工具和函数,可以帮助开发者快速地创建2D游戏。以下是Arcade的一些特点: 简单易用:Arcade提供了简单易用的API&#x…

Android分屏流程分析

本文基于Android 11。 SystemUI模块中的Divider管理着所有关于分屏的对象: DividerView(分屏分割线,分屏显示界面)SplitScreenTaskOrganizer(分屏Task组织者,分屏逻辑) 这里重点关注分屏逻辑…

Qt如何生成dump文件和pdb文件并进行调试定位

在main文件中增加下面代码用于可生成dump文件 #include "widget.h" #include <QApplication> #include <QDir> #include <QDateTime> #ifdef Q_OS_WIN#include <windows.h>#include <dbghelp.h> #endifstatic LONG WINAPI exceptionC…

简单介绍一下什么是“工作内存”和“主内存”(JMM中的概念)

在学习Java多线程编程里&#xff0c; volatile 关键字保证内存可见性的要点时&#xff0c;看到网上有些资料是这么说的&#xff1a;线程修改一个变量&#xff0c;会把这个变量先从主内存读取到工作内存&#xff1b;然后修改工作内存中的值&#xff0c;最后再写回到主内存。 对…

Spring 循环依赖处理之三级缓存设计

一、思考 1、Spring是如何解决循环依赖问题的? 2、为什么要使用三级缓存?二级缓存能否解决问题? 3、提前暴露对象暴露的是什么? 4、主要源码 二、循环依赖 1、介绍 如上图&#xff0c;创建A之前需要先创建B,创建B之前需要先创建A,造成循环依赖。 由于A没创建完成&am…

一个关于Mybatis和spring的公共组件starter

utils-springboot-starter 介绍使用说明 介绍 一个关于Mybatis和spring的公共组件starter&#xff0c;目前包含以下功能&#xff1a; 接口请求日志SQL执行日志数据自动加解密数据自动脱敏服务治理方面&#xff1a; 接口限流接口熔断降级&#xff1a;CPU、内存、异常数、异常率…

win11 环境下streamlit使用pycharm debug

目录 1. pycharm中配置run 脚本2. streamlit3. 开始debug调试 1. pycharm中配置run 脚本 &#xff08;一&#xff09;点击 Edit Configurations,按图操作. 2. streamlit 1.streamlit 安装在 anaconda 的 base 环境&#xff08;随意哈&#xff0c;安装哪里都可以&#xff0c…

问题定位及解决方案

1.视频沉浸页快速滑动后&#xff0c;必现不能向下划动 复现步骤&#xff1a; 进入视频沉浸页&#xff0c;快速向下划动&#xff0c;滑动到第一页最后一个时&#xff0c;不能再向下划动。 解决步骤&#xff1a; 1.确定请求API&#xff1a; mtop.aliexpress.ugc.feed.video.lis…

PE文件反编译为python脚本流程

1、查壳 DetectltEasy、PeiD查壳 2、脱壳 常见打包工具PyInstaller&#xff0c;脱壳方法 &#xff08;1&#xff09;用pyinstxtractor.py脱壳&#xff0c;用”python pyinstxtractor.py 1.exe“命令&#xff0c;生成“.exe文件名_extracted” &#xff08;2&#xff09;用…

深度学习技巧应用8-各种数据类型的加载与处理,并输入神经网络进行训练

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下深度学习技巧应用8-各种数据类型的加载与处理&#xff0c;并输入神经网络进行训练。在模型训练中&#xff0c;大家往往对各种的数据类型比较难下手&#xff0c;对于非结构化数据已经复杂的数据的要进行特殊处理&…

LeetCode:6390. 滑动子数组的美丽值

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;6390. 滑动子数组的美丽值 题目描述&#xff1a;给你一个长度为 n 的整…

波形生成:均匀和非均匀时间向量

波形生成—— 脉冲、chirp、VCO、正弦函数、周期性/非周期性和调制信号 使用 chirp 生成线性、二次和对数 chirp。使用 square、rectpuls 和 sawtooth 创建方波、矩形波和三角形波。 如需了解此处未显示的其他无线波形生成功能&#xff0c;请参阅无线波形发生器 (Communicat…

完整的生产车间管理流程是怎样的?六大步骤分享

阅读本文您将了解&#xff1a;1.生产车间管理的特征&#xff1b;2.生产车间管理流程具体步骤&#xff1b;3.生产车间管理流程规范的重要性。 一、生产车间管理的特征 车间管理是指对车间所从事的各项生产经营活动进行计划、组织、指挥、协调和控制的一系列管理工作。生产车间…