matlab中绘制平行于坐标轴的直线

有时候需要绘制平行于坐标轴的一条直线,那有没有什么简便的方法呢?通过在plot()函数加入参数就可以,代码如下:


     
     
     
     
  1. x= 0: 0. 1: 2*pi; %x的取值生成
  2. y= sin( x); %y= sin( x)函数
  3. plot( x, y); %绘制图形
  4. ylim=get(gca, ’Ylim’); % 获取当前图形的纵轴的范围
  5. hold on
  6. plot([ 1, 1],ylim, ’m–’); % 绘制 x= 1的直线
  7. %[ 1, 1]中,第一个 1表示绘制直线的穿过 x轴点,第 21表示直线穿过 y轴的另个点,由此两点确定想要绘制直线的方向
  8. %ylim 用于绘制 y轴的取值范围
  9. %m– 用于描述线型,粉色,虚线
实际的效果图如下:

那么,我如果想经过任意一个点绘制一条直线呢?那么,直接修改上面代码第6行plot()函数中的[1,1]如我改为[3,4],代码为:


     
     
     
     
  1. x= 0: 0. 1: 2*pi; %x的取值生成
  2. y= sin( x); %y= sin( x)函数
  3. plot( x, y); %绘制图形
  4. ylim=get(gca, 'Ylim'); % 获取当前图形的纵轴的范围
  5. hold on
  6. plot([ 3, 4],ylim, 'm--'); % 绘制直线
  7. %ylim 用于绘制 y轴的取值范围
  8. %m-- 用于描述线型,粉色,虚线
绘制出的图形为:


但是,从上图分析可知,该直线并不是经过[3,4]这两点的直线。那么,进一步我如果将代码第2行的sin(x)换成3*sin(x),那又会变成什么样的?代码为:


     
     
     
     
  1. x= 0: 0. 1: 2*pi; %x的取值生成
  2. y= 3* sin( x); %y= sin( x)函数
  3. plot( x, y); %绘制图形
  4. ylim=get(gca, 'Ylim'); % 获取当前图形的纵轴的范围
  5. hold on
  6. plot([ 3, 4],ylim, 'm--'); % 绘制 x= 1的直线
  7. %ylim 用于绘制 y轴的取值范围
  8. %m-- 用于描述线型,粉色,虚线

如下图:


上面的图片是在第2幅图片的基础上再绘制的,可以看出虽然都设置了plot()函数的参数为[3,4],但两幅的图像中直线的是不重合的,那代码中第6行的含义究竟是什么呢?在代码第3行

ylim=get(gca,'Ylim'); % 获取当前图形的纵轴的范围
     
     
     
     
是获取当前绘制图形的纵坐标的取值范围,假如是[a,b],那 如果第6行为plot([m,n],ylim,’m–’),含义是在ylim=[a,b]的条件下,经过ylim=a(即平行于x轴的直线)上点刻度为m的点,经过ylim=b(即平行于x轴的直线)上点刻度为n的点,由此两点绘制直线。因此,如果已绘制图形的范围如果改变,plot()函数的参数[m,n]相同,所绘制的直线也不同。

这样,就对第3幅图很好理解了。对于较长的那条直线,纵坐标范围是y=-3和+3,plot()函数的参数[3,4],即直线经过y=-3时,x=3;y=3时,x=4这两点。

转载来源 http://https://blog.csdn.net/lqzdreamer/article/details/70492248

你可能感兴趣的:(matleb中的小技巧)