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\');