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');
    
posted @ 2019-10-25 16:34  王家盛  阅读(615)  评论(0编辑  收藏  举报