Matlab绘图(二)低频率命令总结
Matlab绘图(二)低频率命令总结
目录
Matlab的绘图有些操作用的频率很少,所以每次用每次忘,而且这些指令根本没有记忆的必要性,除了基础的画图操作外,有大部分的命令明显可通过matlab图像编辑窗进行快速操控(如添加colorbar,添加annotation等,如截图保存图片等)。
但是这些操作遇到批量处理(如批量存储图片),或者GUI设计这些操作又不得不去使用。
1. plot额外属性设置
2. legend 设置
详细介绍的博客:https://www.cnblogs.com/lihuidashen/p/3443526.html
基本用法:legend(string1,string2,string3, ...)
设置legend的位置: legend(...,'location',Loc)
Loc的值可以为: | ||
---|---|---|
'north' | 'south' | east' |
'west' | 'northeast' | 'northwest' |
'southeast' | 'southwest' | 'northoutside' |
'southoutside' | 'eastoutside' | 'westoutside' |
northeastoutside' | northwestoutside' | southeastoutside' |
southwestoutside' | 'best' | 'bestoutside' |
3. 坐标轴的刻度设置和标签设置
set(gca,'xtick',1:1:9,'xticklabel',1:1:9); %xtick就是要在哪些地方显示刻度,xticklabel就是显示什么
set(gca,'ytick',1:1:9,'yticklabel',1:1:9);
set(gca,'ytick',1:1:9,'yticklabel',{1,2,3,4,5,6,7,8,9}); %离散数字
set(gca,'ytick',1:1:9,'yticklabel',{'1','2','3','4','5','6','7','8','9'}); %字符串
set(gca,'ytick',1:1:9,'yticklabel',{}); %只显示刻度,不显示内容
4. figure 大小设置
设置position
的四个参数,默认单位是像素pixel,也可以按照电脑屏幕的大小设置归一化大小。
set(gcf,'position',[0.05,0.1,0.85,0.75],'Units','Normalized')
5. 其余常用命令
- 栅格:
grid on /off
- x坐标和y坐标说明:
xlabel()
,ylabel()
绘制问题解决方案
1. box on 坐标轴的右上边仍有刻度的问题
当时搜这个问题的解决方案画了很多时间,其实根本不需要去搜相关的命令,直接用line([x1,x2],[y1,y2])
来补全就好了,也花不了多少时间
思考可不可以用命令来获取x,y坐标轴的取值范围?python可以Matlab不知道行不行
2. 设置 latex 语法以及字体
- title 、xlabel、ylabel 、zlabel、textbox 和legend 等的Interpreter 属性有三个属性: latex 、tex、none。默认为tex 。
xlabel('$\delta_w/p_w$','interpreter','latex');
legend({string1,string2,...}, 'interpreter','latex')
- 获取句柄后设置
set(gca,'TickLabelInterpreter','latex'); % Ticklabel用的解释器好像不一样
% ------------
handle=legend('$y=x^2$','$y=x^3$'); %输入“latex代码格式”的图例字符串,并获取该图例的句柄
set(handle, 'interpreter','latex'); %把图例中字符串的解析器设置为“latex”解析器,默认是“tex”解析器
- 字体属性设置
set(gca,'Fontname','latex')
set(gca,'Fontsize',25)
3. 批量字符处理,不要用方括号[ ]
,用元组{}
存取
因为当[ ‘string1’,‘string2’] 存取字符时,实际上存的内容为:string1string2,索引的第一元素为s,元组索引就是第一个单引号包含的内容
注:在Matlab中输入单引号会被认为类似于char()转换字符的操作,若要输出,两个单引号等于一个单引号(功能类似于转义符\)
4. 指定曲线,legend输出
-
写法一:如果不指定绘制曲线句柄,legend后面可以直接跟字符串,则默认字符和曲线顺序一一对应。
-
写法二:给每个需要的曲线返回句柄,并单独对这些线进行设置
-
写法三:指定曲线不显示
h1=plot(x,y); set(get(get(h1,'Annotation'),'LegendInformation'),'IconDisplayStyle','off');
-
不显示legend的方框
hl = legend(H([1 6 11 16 21],'1,'6','11’,'16','21'); set(hl,'Box','off');