matlab bar圖x軸座標旋轉函式
阿新 • • 發佈:2019-01-30
網上查到的,轉載下,已測試可以使用
示例:
x = round(rand(5,3)*10);
h=bar(x,1,'group');
set(gca,'xticklabels',{'benchmark1','benchmark2','benchmark3','benchmark4','benchmark5'});
h = gca;
示例:
x = round(rand(5,3)*10);
h=bar(x,1,'group');
set(gca,'xticklabels',{'benchmark1','benchmark2','benchmark3','benchmark4','benchmark5'});
h = gca;
th=rotateticklabel(h, 45);%呼叫下面的函式,座標傾斜45度
程式碼如下:
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 %DEMO: 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,'fontweight','bold','rotation',rot); end