【合集】MATLAB常见图形格式调整问题
MATLAB常见图形格式调整问题
- 1 MATLAB固定text在图中的相对位置
- 1.1 text函数
- 2 MATLAB绘制图像时调整坐标轴及网格线至最顶层
- 3 MATLAB设置坐标范围:X/Y轴
- 4 MATLAB 线型设置
- 5 MATLAB分区绘图subplot总标题设置
- 6 MATLAB分区绘图子图间距和边缘距离调整
- 7 MATLAB图例设置Legend
- 7.1 图例位置
- 7.2 其它
- 7.3 案例
- 8 MATLAB设置斜体和正体
- 9 colormap相关问题
- 9.1 颜色图反转
- 10 坐标轴刻度设置
- 10.1 坐标轴刻度朝外
- 10.2 去除图像右边和上边的刻度线
- 10.3
- 参考
1 MATLAB固定text在图中的相对位置
MATLAB如何固定text在图中的相对位置
1.1 text函数
语法:
text(x,y,txt)
text(___,Name,Value)
text的详细用法参见MATLAB帮助文档
一般text函数的前面两项是输入插入string的坐标位置,但若想固定string在图中的相对位置,比如说让string 一直显示在图的右上角,并不随图的坐标轴的大小的改变而改变,那这个应当如何实现呢?
利用text的Unit属性,利用normalized的单位来实现
实例如下:
text( 'string',"(a) UB-OR", 'Units','normalized','position',[0.75,0.95], 'FontSize',14,'FontWeight','Bold','FontName','Times New Roman');
据此,固定了text在图中的相对位置,在绘制一系列图表时,可移植至其他图形。
2 MATLAB绘制图像时调整坐标轴及网格线至最顶层
MATLAB绘制图像时调整坐标轴及网格线至最顶层
MATLAB在绘制图形时,会出现图像遮挡坐标轴,网格线等情况,此时,如何调整图层的先后顺序呢?
于末尾添加代码如下:
set(gca,'Layer','top');
经修改后,图形如下所示,可见问题已经解决~
3 MATLAB设置坐标范围:X/Y轴
% 设置x轴范围和刻度
set(gca,'XLim',[0 10]); % X轴的数据显示范围
set(gca,'XTick',[0:1:10]); % 设置要显示坐标刻度
set(gca,'XTickLabel',[0:1:10]); % 给坐标加标签 % 设置y轴范围和刻度
set(gca,'YLim',[95 101]); % X轴的数据显示范围
set(gca,'YTick',[95:1:101]); % 设置要显示坐标刻度
set(gca,'YTickLabel',[95:1:101]); % 给坐标加标签 % 设置当前坐标轴x轴和y轴的限制范围
axis( [xmin xmax ymin ymax] )
4 MATLAB 线型设置
参见LineSpec(线条设定)
线型 | 说明 |
---|
- | 实线
– |虚线
: | 点线
-. | 点划线
MATLAB可以更改下列属性:
· LineWidth - 指定线条的宽度(以磅为单位)。
· MarkerEdgeColor - 指定标记颜色或填充标记(圆形、方形、菱形、五角形、六角形和四个三角形)的· 边颜色。
· MarkerFaceColor - 指定填充标记的面的颜色。
· MarkerSize - 指定标记的大小(以磅为单位,必须大于 0)。
5 MATLAB分区绘图subplot总标题设置
在代码末处添加以下代码,可以设置总标题:
属性修改可见MATLAB帮助-在子图网格上添加标题
sgtitle('Your Title');
对于共用横(纵)坐标标题,可以通过text函数实现:
hAxis = axes('visible','off');
hxlabel = text(-0.05,0.5,'Percentage(%)');
set(hxlabel,'fontsize',15,'rotation',90,'HorizontalAlignment','center','FontWeight','Bold','FontName','Times New Roman');
hylabel = text(0.5,-0.1,'Month');
set(hylabel,'fontsize',15,'HorizontalAlignment','center','FontWeight','Bold','FontName','Times New Roman');
效果图如下:
6 MATLAB分区绘图子图间距和边缘距离调整
在MATLAB中,利用subplot绘制多副子图时,会发现各子图之间的距离太远,如下图所示:
So,怎么调整呢?
先百度,首先尝试Matlab子图间距和边缘距离调整一文中提出的两个方法。
方法一:使用tight_subplot函数,替代subplot进行绘图设置。
下载地址:tight_subplot(Nh, Nw, gap, marg_h, marg_w)
函数调用格式:
[ha,pos]=tight_subplot(Nh,Nw,gap,marg_h,marg_w)
% ha 是坐标轴句柄,pos是每个坐标轴的原点与长宽
% Nh,Nw 可以认为是几行几列
% gap是子图的纵向和横向间距,gap(1)为纵向,gap(2)为横向
% marg_h是图件与上下边缘的距离,marg_h(1)为距下边缘的距离,marg_h(2)是距上边缘的距离
% marg_w 是图件与左右边缘的距离,marg_w(1)为距左边缘的距离,marg_w(2)是距右边缘的距离。
利用上述函数进行处理,得到图形如下:
相关代码如下:
figure(1)
Nh = 4; % 两行
Nw = 2; % 四列
ha = tight_subplot(Nh,Nw,[.01 .01],[.1 .01],[.05 .01]);axes( ha(1) ); % 将h(a)设置为当前坐标区
hold on;
box on;
h(1) = plot(SRI3Spring{1,1},'-ob','LineWidth',1.5,'MarkerEdgeColor','b');
h(2) = plot(SRI3Summer{1,1},'-sr','LineWidth',1.5,'MarkerEdgeColor','r');
h(3) = plot(SRI3Autumn{1,1},'-g','LineWidth',1.5);
h(4) = plot([0,57],[0,0],'--k','LineWidth',1);
text( 'string',"(a) Huangjiagang", 'Units','normalized','position',[0.02,0.9], 'FontSize',14,'FontWeight','Bold','FontName','Times New Roman');
set(gca,'xlim',[0 57],'xtick',[1:5:57],'xticklabel',[ ]);
set(gca,'ylim',[-2 3.25],'ytick',[-1:1:3],'yticklabel',[-1 0 1 2 3]);
set(gca,'FontSize',12,'Fontname', 'Times New Roman');axes( ha(2) );
hold on;
box on;
h(1) = plot(SRI3Spring{2,1},'-ob','LineWidth',1.5,'MarkerEdgeColor','b');
h(2) = plot(SRI3Summer{2,1},'-sr','LineWidth',1.5,'MarkerEdgeColor','r');
h(3) = plot(SRI3Autumn{2,1},'-g','LineWidth',1.5);
h(4) = plot([0,57],[0,0],'--k','LineWidth',1);
text( 'string',"(b) Huangzhuang", 'Units','normalized','position',[0.02,0.9], 'FontSize',14,'FontWeight','Bold','FontName','Times New Roman');
set(gca,'xlim',[0 57],'xtick',[1:5:57],'xticklabel',[ ]);
set(gca,'ylim',[-2 3.25],'ytick',[-1:1:3],'yticklabel',[ ]);
set(gca,'FontSize',12,'Fontname', 'Times New Roman');axes( ha(3) );
hold on;
box on;
h(1) = plot(SRI3Spring{3,1},'-ob','LineWidth',1.5,'MarkerEdgeColor','b');
h(2) = plot(SRI3Summer{3,1},'-sr','LineWidth',1.5,'MarkerEdgeColor','r');
h(3) = plot(SRI3Autumn{3,1},'-g','LineWidth',1.5);
h(4) = plot([0,57],[0,0],'--k','LineWidth',1);
text( 'string',"(c) Baihe", 'Units','normalized','position',[0.02,0.9], 'FontSize',14,'FontWeight','Bold','FontName','Times New Roman');
set(gca,'xlim',[0 57],'xtick',[1:5:57],'xticklabel',[ ]);
set(gca,'ylim',[-2 3.25],'ytick',[-1:1:3],'yticklabel',[-1 0 1 2 3]);
set(gca,'FontSize',12,'Fontname', 'Times New Roman');axes( ha(4) );
hold on;
box on;
h(1) = plot(SRI3Spring{4,1},'-ob','LineWidth',1.5,'MarkerEdgeColor','b');
h(2) = plot(SRI3Summer{4,1},'-sr','LineWidth',1.5,'MarkerEdgeColor','r');
h(3) = plot(SRI3Autumn{4,1},'-g','LineWidth',1.5);
h(4) = plot([0,57],[0,0],'--k','LineWidth',1);
text( 'string',"(d) Guotan", 'Units','normalized','position',[0.02,0.9], 'FontSize',14,'FontWeight','Bold','FontName','Times New Roman');
set(gca,'xlim',[0 57],'xtick',[1:5:57],'xticklabel',[ ]);
set(gca,'ylim',[-2 3.25],'ytick',[-1:1:3],'yticklabel',[ ]);
set(gca,'FontSize',12,'Fontname', 'Times New Roman');axes( ha(5) );
hold on;
box on;
h(1) = plot(SRI3Spring{5,1},'-ob','LineWidth',1.5,'MarkerEdgeColor','b');
h(2) = plot(SRI3Summer{5,1},'-sr','LineWidth',1.5,'MarkerEdgeColor','r');
h(3) = plot(SRI3Autumn{5,1},'-g','LineWidth',1.5);
h(4) = plot([0,57],[0,0],'--k','LineWidth',1);
text( 'string',"(e) Huanglongtan", 'Units','normalized','position',[0.02,0.9], 'FontSize',14,'FontWeight','Bold','FontName','Times New Roman');
set(gca,'xlim',[0 57],'xtick',[1:5:57],'xticklabel',[ ]);
set(gca,'ylim',[-2 3.25],'ytick',[-1:1:3],'yticklabel',[-1 0 1 2 3]);
set(gca,'FontSize',12,'Fontname', 'Times New Roman');axes( ha(6) );
hold on;
box on;
h(1) = plot(SRI3Spring{6,1},'-ob','LineWidth',1.5,'MarkerEdgeColor','b');
h(2) = plot(SRI3Summer{6,1},'-sr','LineWidth',1.5,'MarkerEdgeColor','r');
h(3) = plot(SRI3Autumn{6,1},'-g','LineWidth',1.5);
h(4) = plot([0,57],[0,0],'--k','LineWidth',1);
text( 'string',"(f)Xiangjiaping", 'Units','normalized','position',[0.02,0.9], 'FontSize',14,'FontWeight','Bold','FontName','Times New Roman');
set(gca,'xlim',[0 57],'xtick',[1:5:57],'xticklabel',[1958:5:2013]);
set(gca,'ylim',[-2 3.25],'ytick',[-1:1:3],'yticklabel',[ ]);
set(gca,'FontSize',12,'Fontname', 'Times New Roman');axes( ha(7) );
hold on;
box on;
h(1) = plot(SRI3Spring{7,1},'-ob','LineWidth',1.5,'MarkerEdgeColor','b');
h(2) = plot(SRI3Summer{7,1},'-sr','LineWidth',1.5,'MarkerEdgeColor','r');
h(3) = plot(SRI3Autumn{7,1},'-g','LineWidth',1.5);
h(4) = plot([0,57],[0,0],'--k','LineWidth',1);
text( 'string',"(g)Xindianpu", 'Units','normalized','position',[0.02,0.9], 'FontSize',14,'FontWeight','Bold','FontName','Times New Roman');
set(gca,'xlim',[0 57],'xtick',[1:5:57],'xticklabel',[1958:5:2013]);
set(gca,'ylim',[-2 3.25],'ytick',[-1:1:3],'yticklabel',[-1 0 1 2 3]);
set(gca,'FontSize',12,'Fontname', 'Times New Roman');axes( ha(8) );
axis off;hAxis = axes('visible','off');
hxlabel = text(0.5,-0.1,'Year');
set(hxlabel,'fontsize',15,'HorizontalAlignment','center','FontWeight','Bold','FontName','Times New Roman');
hylabel = text(-0.14,0.5,'SRI');
set(hylabel,'fontsize',15,'rotation',90,'HorizontalAlignment','center','FontWeight','Bold','FontName','Times New Roman');lgd = legend(h([1 2 3]),"Spring","Summer","Autumn",'fontsize',15,'FontWeight','Bold','FontName','Times New Roman','NumColumns',3);
set(lgd,'Box','off');
此外,针对多余坐标区(上图第八个分区没有图,用于放置图例),可用以下代码将其隐藏。
axes( ha(8) );
axis off;
方法二:针对2019b以后的版本,官网有tiledlayout-创建分块图布局可以用于解决间距过大的问题。
没办法,我现在也是2019a,没得使用这个方法的机会。
7 MATLAB图例设置Legend
参见MATLAB帮助-Legend在坐标区上添加图例
7.1 图例位置
值 | 说明 |
---|---|
‘north’ | 坐标区中的顶部 |
‘south’ | 坐标区中的底部 |
‘east’ | 坐标区中的右侧区域 |
‘west’ | 坐标区中的左侧区域 |
‘northeast’ | 坐标区中的右上角(二维坐标区的默认值) |
‘northwest’ | 坐标区中的左上角 |
‘southeast’ | 坐标区中的右下角 |
‘southwest’ | 坐标区中的左下角 |
‘northoutside’ | 坐标区的上方 |
‘southoutside’ | 坐标区的下方 |
‘eastoutside’ | 到坐标区的右侧 |
‘westoutside’ | 到坐标区的左侧 |
… | … |
示例: legend(‘Location’,‘northeastoutside’)
7.2 其它
设置列数: lgd.NumColumns = 3
7.3 案例
MATLAB实现代码如下:
hl = legend(h([1 2]),"径流","多年平均径流",'location','northwest');
set(hl,'Box','off');
图形如下:
8 MATLAB设置斜体和正体
斜体(Italic)
\it
正体
\rm
案例如下:
相应代码如下:
figure(1)
box on;
backColor = [255 240 245]/255;
set(gca, 'color', backColor);
text( 'string',"\itZ\rm_1=\itz\rm_1+\itz\rm_2+\itz\rm_3", 'Units','normalized','position',[0.5,0.8], 'FontSize',25,'FontWeight','Bold','FontName','Times New Roman','color','r');
9 colormap相关问题
MATLAB中文帮助-colormap
MATLAB中文帮助-colorbar
MATLAB预定义的颜色图:
9.1 颜色图反转
【举例】将灰度图颜色反转,即白色部分变黑,黑色部分变白:
colormap(flipud(gray)):
10 坐标轴刻度设置
10.1 坐标轴刻度朝外
set(gca,'TickDir','out')
疑问:此方法只能设置将各防线坐标轴刻度朝外,如何设置某单个坐标轴刻度方向呢?
10.2 去除图像右边和上边的刻度线
box off
ax2 = axes('Position',get(gca,'Position'),...'Color','none',...'XAxisLocation','top',...'YAxisLocation','right',...'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
10.3
参考
1-CSDN博客-Matlab去除图像右边和上边的刻度线
【合集】MATLAB常见图形格式调整问题相关推荐
- matlab数据显示格式,如何使用MATLAB以图形格式记录和显示数据
图形表示形式总是有助于可视化数据,并且通过查看趋势和模式非常容易.有很多软件可以根据输入值绘制图形,但是在嵌入式系统中,MATLAB是最受欢迎的软件之一,它不仅可以以图形形式显示结果,而且可以轻松地与 ...
- matlab ifft取实部,[合集] matlab中IFFT的问题
发信人: goodspeed (LIP & BCI & LT-WMN), 信区: Signal 标 题: [合集] matlab中IFFT的问题 发信站: BBS 水木清华站 (Sa ...
- CNN卷积神经网络案例程序源代码合集matlab/Python等
CNN卷积神经网络案例程序源代码合集matlab/Python等 1.深入理解CNN(包括CNN的过程显示和前向后向推倒,以及CNN的应用举例.) 2.kerasttensorflowCNN(CNN_ ...
- Matlab导出图片格式调整
论文写作中经常遇到导出的图片格式不符合要求的情况,为了调整得到满意的图片,可谓是千辛万苦. 今天偶然在网上看到有一个matlab专门针对导出图片调整格式的工具包:export_fig. https:/ ...
- wear手表软件合集_如何设置,调整和使用Android Wear手表
wear手表软件合集 Android Wear is a rather useful addition to your arsenal of technology, but getting to kn ...
- matlab读入txt数据_教程合集 | MATLAB文件读写(以nc与txt为例)
周一到!我们又和大家见面啦!最近几周的主题是,有了数据,那我们怎么读写数据文件呢?气象中的特殊资料又有哪些处理方法呢?以txt和nc文件做引子,欢迎各位拍砖~ No.1 基础通用知识 读写文件时有一些 ...
- matlab中nc文件,教程合集 | MATLAB文件读写(以nc与txt为例)
其他部分文件读写方法见下方链接内的论坛讨论: 微信不能添加外部超链接,请复制链接至浏览器食用! 关于用MATLAB一站式读取NetCDF, OPeNDAP, HDF5, GRIB, GRIB2, HD ...
- 函数平移口诀_呆哥数学函数合集——函数的图形变换来啦【4】
函数图像变幻莫测哈哈哈 呆哥今天给你们整理的要点!注意查收! [电子档领取] 如果想要获取往期电子版讲义.数学笔记手写稿 可以加我微信:daigemath666备注:一轮复习讲义电子版或手写稿 4. ...
- 【基础智能优化算法】68种算法大合集+matlab源码+参考资料+永久更新
目前已更新68种基础算法+matlab源码+参考资料 !!!!!! 2-蝴蝶优化算法 3--海洋捕食者算法 4-鲸鱼优化算法 5-乌燕鸥优化算法 6-灰狼优化算法 7-黑猩猩优化算法 8-原子搜索算法 ...
- 【网络安全工程师面试合集】—常见端口扫描技术
目录 3.3.2.1. 全扫描 3.3.2.2. 半扫描 3.3.2.3. FIN扫描 3.3.3. Web服务 3.3.4. 批量搜索
最新文章
- 中科院自动化所17篇CVPR 2022 论文新作速览!
- 消息称中国商务部已批准高通收购恩智浦
- html visibility 替代服务器端控件 visable属性!
- dotNET知音,19年归档
- Sublime Text 插件之常用20个插件
- 练习mvc做一个知识库(二)
- python点击屏幕_Python屏幕操作
- SPSS分析基础——T检验
- 有什么新手适合的3D建模软件
- onenote打开闪退平板_ipad pro 11英寸。onenote闪退 无法使用
- linuxdeployqt ldd ERROR: ldd outputLine: .../libQt5Core.so.5: version `Qt_5' not found (required by
- SAP 库存盘点 步骤--(详细)
- php接入支付宝app支付接口,php支付宝App支付生成预支付订单(统一下单接口)
- 关于读书,请你丢掉对书本的敬畏感
- 简单PHP会话(session)说明
- 百度地图的一些踩坑 marker网络图片不显示
- 由syms生成函数,求该函数在某些点的数值
- poj2391 Ombrophobic Bovines 拆点连边要注意
- linux终端设置es副本数,elasticsearch之修改shards数
- 计算机用户administer改名后,win10系统用户文件夹改名的详细步骤
热门文章
- 配置Linux服务器防火墙端口规则
- REST Assured 4 - 第一个GET Request
- 软件全屏使用时点击鼠标自动跳回桌面的问题
- python中sys模块是干什么的_python中sys模块的介绍和使用
- LeetCode热题100使用摩尔投票法的题目整理(待更)
- php奖状,利用CSS布局做一个简单的荣誉证书(代码示例)
- 服务器执行MySQL耗时问题解决全过程
- html怎么播放f4v,优秀的flv网页播放器,支持高清f4v,mp4,rtmp,支持广告
- postgres mysql quora_DesktopReader for Quora
- exchange创建邮箱组_在 Exchange Server 中创建用户邮箱