[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 90-deg rotated tick mark labels
From: |
Muhali |
Subject: |
Re: 90-deg rotated tick mark labels |
Date: |
Fri, 4 Nov 2011 18:54:20 -0700 (PDT) |
bpabbott wrote:
>
> The file in question does not produce intended result when run in Octave.
>
This is how I use it, without major problems so far.
M.
----------------------------------------------------------------------------------
function th=rotateticklabel(h,rot,demo)
%ROTATETICKLABEL rotates tick labels
% TH=ROTATETICKLABEL(H,ROT) is 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');
fs = get(h,'fontsize'); fn = get(h,'fontname');
%erase current tick labels from figure
set(h,'XTickLabel',[]);
%get tick label positions
b=get(h,'xtick');
c=get(h,'ylim');
%make new tick labels
if rot<180
th=text(b,repmat(c(1)-.05*(c(2)-c(1)),length(b),1),a,'fontname',fn,'fontsize',fs,'HorizontalAlignment','right','rotation',rot);
else
th=text(b,repmat(c(1)-.1*(c(2)-c(1)),length(b),1),a,'fontname',fn,'fontsize',fs,'HorizontalAlignment','left','rotation',rot);
endif
endfunction
--
View this message in context:
http://octave.1599824.n4.nabble.com/90-deg-rotated-tick-mark-labels-tp3798885p3992296.html
Sent from the Octave - General mailing list archive at Nabble.com.
- Re: 90-deg rotated tick mark labels, (continued)
- Re: 90-deg rotated tick mark labels, Ben Abbott, 2011/11/04
- Re: 90-deg rotated tick mark labels, Sergei Steshenko, 2011/11/04
- Re: 90-deg rotated tick mark labels, Sergei Steshenko, 2011/11/04
- Re: 90-deg rotated tick mark labels, John W. Eaton, 2011/11/04
- Re: 90-deg rotated tick mark labels, Sergei Steshenko, 2011/11/04
- Re: 90-deg rotated tick mark labels, Muhali, 2011/11/04
- Re: 90-deg rotated tick mark labels, Francesco Potortì, 2011/11/06
- Re: 90-deg rotated tick mark labels, Ben Abbott, 2011/11/04
- Re: 90-deg rotated tick mark labels, Sergei Steshenko, 2011/11/04
- Re: 90-deg rotated tick mark labels, Ben Abbott, 2011/11/04
- Re: 90-deg rotated tick mark labels,
Muhali <=
- Re: 90-deg rotated tick mark labels, Ben Abbott, 2011/11/05
Re: 90-deg rotated tick mark labels, Muhali, 2011/11/04