加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

matlab绘图设置横坐标数值的角度

(2020-06-10 08:26:56)

matlab绘图设置横坐标数值的角度

  • matlab自带的包中无法改变横坐标的角度,但往往横坐标的数值过长,容易造成重合,因此需要将横坐标的数值角度进行旋转:

    • 横坐标旋转角度函数
    • 调用方法
    • 结果展示

    横坐标旋转角度函数

  • function th=rotateticklabel(h,rot,demo)
    %ROTATETICKLABEL rotates tick labels
     TH=ROTATETICKLABEL(H,ROT) ris the calling form where H is a handle to
     the axis that contains the XTickLabels that are to be rotated. ROT is
     an optional parameter that specifies the angle of rotation. The default
     angle is 90. TH is a handle to the text objects created. For long
     strings such as those produced by datetick, you may have to adjust the
     position of the axes so the labels don't get cut off.
    %
     Of course, GCA can be substituted for H if desired.
    %
     TH=ROTATETICKLABEL([],[],'demo') shows a demo figure.
    %
     Known deficiencies: if tick labels are raised to a power, the power
     will be lost after rotation.
    %
     See also datetick.

     Written Oct 14, 2005 by Andy Bliss
     Copyright 2005 by Andy Bliss


    if nargin==3
        x=[now-.7 now-.3 now];
        y=[20 35 15];
        figure
        plot(x,y,'.-')
        datetick('x',0,'keepticks')
        h=gca;
        set(h,'position',[0.13 0.35 0.775 0.55])
        rot=90;
    end

    %set the default rotation if user doesn't specify
    if nargin==1
        rot=90;
    end
    %make sure the rotation is in the range 0:360 (brute force method)
    % while rot>360
       rot=rot-360;
    % end
    % while rot<0
       rot=rot+360;
    % end
    %get current tick labels
    a=get(h,'XTickLabel');
    %erase current tick labels from figure
    set(h,'XTickLabel',[]);
    %get tick label positions
    b=get(h,'XTick');
    c=get(h,'YTick');
    %make new tick labels
    if rot<180
        th=text(b,repmat(c(1)-.1*(c(2)-c(1)),length(b),1),a,'HorizontalAlignment','right','fontsize',14,'fontweight','bold','rotation',rot);
    else
        th=text(b,repmat(c(1)-.1*(c(2)-c(1)),length(b),1),a,'HorizontalAlignment','left','fontsize',14,'rotation',rot);
    end
  • 调用方法

    在图绘制结束之后直接利用函数

  • th = rotationticklabel(gca,30) 0代表旋转30度


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有