MATLAB二维绘图练习(一)

MATLAB二维绘图(一)使用plot函数进行简单绘图

1,颜色和线条:

           b    blue   蓝      .     point              -     solid
           g    green  绿      o     circle             :     dotted
           r    red    红      x     x-mark             -.    dashdot 
           c    cyan   青      +     plus               --    dashed   
           m    magenta 品红   *     star             (none)  no line
           y    yellow 黄      s     square
           k    black  黑      d     diamond
           w    white  白      v     triangle (down)
                               ^     triangle (up)
                               <     triangle (left)
                               >     triangle (right)
                               p     pentagram 五角星
                               h     hexagram  六角星

 2,plot(x,y):创建2维直线图。

 x = -2*pi:pi/10:2*pi;
 y1 = sin(x);
% y2 = cos(x);
 subplot(2,1,1);
 plot(x,y1)

添加坐标轴做法

    t = -pi:0.01:pi;
    y = sin(t);
    plot(t,y)
    
    set(gca,'box', 'off')               % 去掉坐标区的框轮廓
    set(gca,'XAxisLocation', 'origin'); % 设置x轴位置,使其穿过原点
    set(gca,'YAxisLocation', 'origin'); % 设置y轴位置,使其穿过原点
	pos = get(gca,'Position');          % 获取内坐标区的大小和位置
    xL = xlim;                          % 获x取坐标轴范围
    yL = ylim;                          % 获y取坐标轴范围
    
    ax=gca;                             % 获取图窗句柄
    
    % 横轴
    dan1 = (yL(2)-yL(1))/pos(4);                % 单位1代表的长度
    pt1 = yL(1)-dan1*pos(2);                    % 内坐标区相对于下边界多出的部分
    ax.UserData.AW{1} = annotation('arrow');    % 创建箭头对象,并将其保存在用户数据中
    ax.UserData.AW{1}.X=[pos(1) pos(1)+pos(3)];
    ax.UserData.AW{1}.Y=[(0-pt1)/dan1 (0-pt1)/dan1];
    
    % 纵轴
    dan2 = (xL(2)-xL(1))/pos(3);                % 单位1代表的长度
    pt2 = xL(1)-dan2*pos(1);                    % 内坐标区相对于左边界多出的部分
    ax.UserData.AW{2} = annotation('arrow');    % 创建箭头对象,并将其保存在用户数据中
    ax.UserData.AW{2}.X = [(0-pt2)/dan2 (0-pt2)/dan2];
    ax.UserData.AW{2}.Y = [pos(2) pos(2)+pos(4)];
    
    MovAW() % 让箭头随着鼠标的拖动而改变

 MovAW()函数

function MovAW(~,~)

    cp_gca=gca;
    pos=cp_gca.Position;    % 内坐标区的边界

    yL = cp_gca.YLim;
    xL = cp_gca.XLim;
    
    % 横轴
    dan1 = (yL(2)-yL(1))/pos(4);    % 单位1代表的长度
    pt1 = yL(1)-dan1*pos(2);    	% 内坐标区相对于下边界多出的部分
    cp_gca.UserData.AW{1}.X=[pos(1) pos(1)+pos(3)];
    cp_gca.UserData.AW{1}.Y=[(0-pt1)/dan1 (0-pt1)/dan1];
    
    % 纵轴
    dan2 = (xL(2)-xL(1))/pos(3);    % 单位1代表的长度
    pt2 = xL(1)-dan2*pos(1);       	% plot相对于下边界多出的部分
    cp_gca.UserData.AW{2}.X = [(0-pt2)/dan2 (0-pt2)/dan2];
    cp_gca.UserData.AW{2}.Y = [pos(2) pos(2)+pos(4)];
    
    set(cp_gca.Parent,'WindowButtonMotionFcn',@MovAW);  % 设置回调函数,当鼠标按下时执行该函数

end

 3,plot(X1,Y1,...,Xn,Yn):画n条线。例如:

 x = -2*pi:pi/100:2*pi;
 y1 = sin(x);
 y2 = cos(x);
 subplot(2,1,1);
 plot(x,y1,x,y2)

 4,plot(Y):Y是矩阵,这表示矩阵的每一行都画一条线。例如:

subplot(2,1,2);
Y = magic(4);% 这是一个4*4的矩阵,详情请在command窗口输入help magic查看

plot(Y)

 5. 特殊的线条和颜色组合,引号内的就是颜色和线条,可以由第1小节的颜色和线条自由组合。

 x = -2*pi:pi/10:2*pi;
 y1 = sin(x);
 y2 = cos(x);
 subplot(2,1,1);
% plot(x,y1,x,y2)
 
 plot(x,y1,'c:*', x,y2,'b--o');
subplot(2,1,2);

 6,线宽调整

 x = -2*pi:pi/10:2*pi;
 y = sin(x);
plot(x,y,'--gs','LineWidth',2,'MarkerSize',10,'MarkerEdgeColor','b','MarkerFaceColor',[0.1,0.8,0.1])

    这里'--gs'表示用方框画点,然后用绿色虚线连结;'LineWidth',2表示绿色虚线宽度为2;'MarkerSize',10表示方框大小为10;'MarkerEdgeColor','b'表示方框边缘颜色为蓝色;'MarkerFaceColor',[0.5,0.5,0.5]表示方框填充色为[0.5,0.5,0.5](这是RGB颜色值)。


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Love coldplay

你的鼓励,将让我持续更新

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值