matlab tick

01-04 生活常识 投稿:管理员
matlab tick
x=1:8;

subplot(2,2,1)
plot(x)
%tick style 0(auto)


subplot(2,2,2)
plot(x)
set(gca,'xtick',[1 3 6 8]);%style 1
set(gca,'ytick',[]);%style 2

subplot(2,2,3)
plot(x)
set(gca,'xtick',[1 3 6 8]);
set(gca,'xticklabel',sprintf('%03.4f|',get(gca,'xtick')));%style 3
set(gca,'ytick',[2 4 5 7]);
set(gca,'yticklabel',{'Two','Four','Five','Seven'});%style 4

subplot(2,2,4)
plot(x)
set(gca,'xminortick','on');%style 5
set(gca,'ticklength',[0.05 0.025]);%style 6
set(gca,'tickdir','out');%style 7

 

1. label旋转坐标轴的label可以在label axis 的时候设置旋转角度 xlabel(str,'Rotation',Rotaiondegree) xlabel('This is xlabel','Rotation',15,'fontsize',20)

2. title旋转figure title也可以通过设置旋转属性来实现旋转,和label一样 hold on title('This is title','rotation',15,'fontsize',20)
3. ticklabel的旋转matlab中ticklabel并没有Rotation这一属性可以设置,所以得另想办法。text是可以设置旋转属性(Rotation)的,所以可以用text函数给figure在相应位置标上ticklabel,然后旋转。
 plot([0 1],[0 1]);% 获取xticklabel的值 xtl=get(gca,'XTickLabel'); % 获取xtick的值 xt=get(gca,'XTick'); % 获取ytick的值       yt=get(gca,'YTick');  % 设置text的x坐标位置们       xtextp=xt;                  % 设置text的y坐标位置们     ytextp=(yt(1)-0.2*(yt(2)-yt(1)))*ones(1,length(xt)); % rotation,正的旋转角度代表逆时针旋转,旋转轴可以由HorizontalAlignment属性来设定,% 有3个属性值:left,right,center text(xtextp,ytextp,xtl,'HorizontalAlignment','right','rotation',45,'fontsize',15); % 取消原始ticklabel set(gca,'xticklabel','');




自己做了一个自由标刻度的函数可以解决。有不尽完美之处还望各位指教。
%axis为'x'或'y',分别表示更改x或y刻度
%ticks是字符cell
function settick(axis,ticks)
n=length(ticks);
tkx=get(gca,'XTick');tky=get(gca,'YTick');
switch axis
    case 'x'
     w=linspace(tkx(1),tkx(end),n);
     set(gca, 'XTick', w, 'XTickLabel', []);%刷新刻度,去掉刻度值
     yh=(14*w(1)-w(end))/13;%按坐标轴比例调整刻度纵坐标位置
     for i=1:n
         text('Interpreter','tex','String',ticks(i),'Position',[w(i),yh],'horizontalAlignment', 'center');
     end
    case 'y'
     w=linspace(tky(1),tky(end),n);
     set(gca, 'YTick', w, 'YTickLabel', []);
     xh=(11*w(1)-w(end))/10;
     for i=1:n
         text('Interpreter','tex','String',ticks(i),'Position',[xh,w(i)],'horizontalAlignment', 'center');
     end
end

例如:
x=0:0.1:4*pi;plot(x,sin(x));ticks={'G_1' 'G_2' 'G_3' 'G_4' 'G_5'};settick('x',ticks)
figure;x=0:0.1:4*pi;plot(x,sin(x));ticks={'G_1' 'G_2' 'G_3' 'G_4' 'G_5'};settick('y',ticks) 
标签: # 刻度 # 属性
声明:伯乐人生活网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系ttnweb@126.com