zoukankan      html  css  js  c++  java
  • 绘制图形的辅助操作

    给图形添加标注 

    坐标控制 

    图形保持 

    图形窗口的分割等

    1.图形标注

    在绘制图形的同时,可以对图形加上一些说明。如图形名称、坐标轴说明以及图形某一部分的含义等,我们把这些操作统一称为添加图形标注。

    title(图形标题) 

    xlabel(x轴说明) 

    ylabel(y轴说明) 

    text(x, y, 说明)   //指定位置添加说明

    legend(图例1, 图例2, …)  //添加图例 线性,颜色等

    (1)title函数

    ①title函数的基本用法

      title(图形标题)

    例1  绘制[-2π,2π]区间的正弦曲线并给图形添加标题。

    >> x=-2*pi:0.05:2*pi;

    >> y=sin(x);

    >> plot(x,y)

    >> title('y=sin(x)')

    如果标题有多行,要用大括号括起来,字符串之间用逗号分隔。

    >> title({'MATLAB', 'y=sin(x)'})

    ②在图形标题中使用LaTeX格式控制符(希腊字母,数学符号,公式等)

    受LaTeX格式控制的部分要用大括号括起来。

    上标与下标用^和_引导

    ③含属性设置的title函数

    title(图形标题,属性名,属性值)   属性名和属性值成对出现

    Color属性 :用于设置图形标题文本的颜色。

    >> title('y=cos{omega}t', 'Color','r')    //省略默认为黑色

    FontSize属性:用于设置标题文字的字号。

    >> title('y=cos{omega}t','FontSize',24)    //省略是默认为11

    (2)xlabel函数和ylabel函数、

    用于设置横/纵坐标轴标签。

    xlabel(x轴说明)

    ylabel(y轴说明)

    例:绘制[-2π,2π]区间的正弦曲线并给x轴添加标签。

    >> x=-2*pi:0.05:2*pi;

    >> y=sin(x);

    >> plot(x,y)

    >> title('y=sin(x)')

    >> xlabel('-2pi leq x leq 2pi')    // /leq输出小于等于符号

     

    (3)text函数和gtext函数

    text(x, y, 说明)       //x,y用于设置文本出现的位置 说明与title的名称定义相同

    gtext(说明)

    在前面的图形中添加文字说明。

    >> text(-2*pi, 0, '-2{pi}')

    >> text(3, 0.28, 'leftarrow sin(x)')    //  leftarrow对应的标注效果为左箭头

    TIP:gtext()函数没有坐标参数,十字光标跟随鼠标移动,单击鼠标即可放在对应十字光标处。

    (4)legend函数

    用户添加图例

    legend(图例1, 图例2, …)   //逗号分隔与title一致,顺序要与plot的输入参数一致

    例2  绘制不同频率的正弦曲线并用图例标注曲线。

    >> x = linspace(0, 2*pi, 100);      //定义行向量x,存储数据点横坐标

    >> plot(x, [sin(x); sin(2*x); sin(3*x)])

    >> legend('sin(x)', 'sin(2x)', 'sin(3x)')

    2.坐标控制

    Matlab可以自动根据要绘制曲线的范围选择合适的坐标刻度。

    axis函数 

    grid函数 

    box函数

    有时绘图需要自己定义坐标系

    (1)axis函数 

    axis函数的基本用法

    axis([xmin,xmax,ymin,ymax,zmin,zmax])

    绘制二维的时候,只给出前4个参数。

    例:>> axis([-pi, pi, -4, 4])

    axis的其他用法

    axis equal:纵、横坐标轴采用等长刻度 

    axis square:产生正方形坐标系(默认为矩形) 

    axis auto:使用默认设置 

    axis off:取消坐标轴 

    axis on:显示坐标轴

    例子:画一个边长为1的正方形

    >> x = [0, 1, 1, 0, 0];

    >> y = [0, 0, 1, 1, 0];

    >> plot(x,y)

    >> axis([-0.1, 1.1, -0.1, 1.1])      //设置横纵坐标值范围

    >> axis equal;     //设置采用等长刻度。

    (2)给坐标系加网格、边框

    改变坐标系显示效果。

    grid on/off   控制网格线。若程序中没有出现grid,默认不显示网格线。

    grid 用于在两种状态之间进行切换。

    box on/off   坐标系加边框。若程序中没有出现box,默认有边框线。

    例子:

    绘制sin x 、sin(2x)、sin(x/2)的函数曲线并添加图形标注。

    x=linspace(0,2*pi,100);    //0-2π区间100个元素

    y=[sin(x); sin(2*x); sin(0.5*x)];    //三个与x相同大小的行向量构成的矩阵

    plot(x,y)

    axis([0 7 -1.2, 1.2])    //指定刻度范围

    title('不同频率正弦函数曲线');

    xlabel('Variable X');

    ylabel('Variable Y');

    text(2.5, sin(2.5), 'sin(x)');     //添加说明

    text(1.5, sin(2*1.5), 'sin(2x)');

    text(5.5, sin(0.5*5.5), 'sin(0.5x)');

    legend('sin(x)','sin(2x)','sin(0.5x)')

    grid on

    3.图形保持

    一般情况下,绘图命令每执行一次,就刷新一次当前执行窗口。叠加新图形。

    hold on 控制保持原有图形

    hold off 控制刷新图形窗口

    hold  控制在两种状态之间进行切换。

    例:用图形保持功能绘制两个同心圆。半径分别为1和2

    t = linspace(0,2*pi,100);   //先生成行向量t,存储各个数据点与x轴的角度。

    x = sin(t);    //取x

    y = cos(t);

    plot(x, y, 'b') hold on;       

    plot(2*x, 2*y, 'r--')

    grid on

    axis([-2.2 2.2 -2.2 2.2])

    axis equal   //显示正圆

    4.图形窗口的分割

    子图:同一图形窗口中的不同坐标系下的图形称为子图。 

    subplot函数

    subplot(m, n, p)

    其中,m和n指定将图形窗口分成m×n个绘图区,p指定当前活动区。  区号按行优先编号。

    >> subplot(2,2,1);

    >> x=linspace(0,2*pi,60);

    >> y=sin(x);

    >> plot(x,y);

    >> title('sin(x)');

    >> axis ([0,2*pi,-1,1]);

    命令只作用于1区。

    更灵活的分割。

    x=linspace(0,2*pi,60);

    subplot(2,2,1)    

    plot(x,sin(x)-1);

    title('sin(x)-1');axis ([0,2*pi,-2,0])

    subplot(2,1,2)    

    plot(x,cos(x)+1);

    title('cos(x)+1');axis ([0,2*pi,0,2])

    subplot(4,4,3)     

    plot(x,tan(x));

    title('tan(x)');axis ([0,2*pi,-40,40])

    subplot(4,4,8)       

    plot(x,cot(x)); title('cot(x)');axis ([0,2*pi,-35,35])

  • 相关阅读:
    .Net cache与cache更新
    用内网服务器对接微信公众号服务
    关于王者荣耀防沉迷以及各种实名认证
    【Springboot】用Springboot Admin监控你的微服务应用
    【Springboot】Springboot整合Jasypt,让配置信息安全最优雅方便的方式
    【Java库】如何使用优秀的加密库Jasypt来保护你的敏感信息?
    【Java实例】使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)
    【MongoDB】用Docker安装一个MongoDB最新版玩玩
    【MongoDB】2019年MongoDB中文社区广州大会,干货满满的分享活动
    【Spring】Spring的定时任务注解@Scheduled原来如此简单
  • 原文地址:https://www.cnblogs.com/yuling520/p/12913726.html
Copyright © 2011-2022 走看看