目录
  1. 1. Matlab绘图(二)低频率命令总结
    1. 1.1. 1. plot额外属性设置
    2. 1.2. 2. legend 设置
    3. 1.3. 3. xtick和xticklabel设置
    4. 1.4. 4. figure 大小设置
    5. 1.5. 5. 其余常用命令
  2. 2. 绘制问题解决方案
    1. 2.1. 1. box on 坐标轴的右上边仍有刻度的问题
    2. 2.2. 2. 设置 latex 语法以及字体
    3. 2.3. 3. 批量字符处理,不要用方括号[ ] ,用元组{}存取
    4. 2.4. 4. 指定曲线,legend输出
    5. 2.5. 5. 3D绘图视角
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. xtick和xticklabel设置

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,'Units','Normalized','position',[0.05,0.1,0.85,0.75])

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

5. 3D绘图视角

语句 :view([Azimuth,Elevation])

其中Azimuth和Azimuth的物理意义是: