我认为在SGPLOT中不使用注释是不可能做到的。他们有一段很好的代码,可以用注释这里来实现这一点。
在GTL中,在9.4中引入了TICKVALUEROTATION,它需要与TICKVALUEFITPOLICY=ROTATE|ROTATEALWAYS和SPLITTICKVALUE=FALSE一起使用。见此:
代码语言:javascript复制data testdata;
call streaminit(7);
do timevar = 12900 to 16900 by 500;
age=10+rand('Normal',5,2);
output;
end;
format timevar date9.;
run;
proc template;
define statgraph mysgplot;
begingraph;
layout overlay /
cycleattrs=true
xaxisopts=(label=" " offsetmax=0 type=time
timeopts=(tickvaluerotation=VERTICAL TICKVALUEFITPOLICY=rotatealways splittickvalue=false) )
yaxisopts=(label=" " type=linear linearopts=(tickvaluelist=(0 2 4 6 8 10 12 14 16 18) viewmin=0 viewmax=18 ))
x2axisopts=(display=(ticks line) type=auto);
seriesplot x=timevar y=age
/ lineattrs=( color=cx538dd5 pattern=1 thickness=2) legendlabel="Overall (15+ years) unemployment rate" NAME="SERIES1";
discretelegend "SERIES" "SERIES1" / location=inside halign=right valign=top;
endlayout;
endgraph;
end;
run;
proc sgrender data = testdata template=mysgplot;
run;我稍微简化了您的轴,以确保它的工作正常,但我认为大多数您的轴语句是可以的。
在9.3或更早的版本中,我认为您被批注或45度困住了。或者看看你能不能说服一个散点图画在轴外。或者用SERIESPLOT和散乱点画出你自己的斧头,但这似乎有点过头了。
下面是上面的代码: