Hi, I am new in SAS 9.2. I want to modify label text size beside vertical axis and haxis? I am using code below but it does not create what I want.
title " ";
goptions hsize=6 vsize=4 ftext="arial" htext=2; // htext does not change axis label text size
symbol color=red ci=blue width=2;
proc reg data=TEXT.CSVGUTE noprint;
var a b;
model a=b;
label a="city"; // city size not changed
label b="rate"; // rate size not changed, and numbers beside scales also not change. They look like smallest size.
plot a*b; // But statistics information (statistics at the right margin DOES change. It is htext=2
run;
And I do not want regression equation to be displayed on top of figure. I can use / nostat to suppress it at the margin. How to hide that equation?
Thanks a lot in advance.
hi ... you are correct, but you could always use GPLOT (and there's most likely a very nice looking answer using SGPLOT) ....
goptions reset=all hsize=6in vsize=4in ftext="calibri"
gunit=pct dev=png gsfname=gout;
symbol1 color=red v=dot ci=blue h=3 width=2;
filename gout 'z:\procreg.png';
title 'DATA PLOTED WITH PROC REG' ls=2;
proc reg data=sashelp.class noprint;
var weight height;
model weight = height;
label
weight = "WEIGHT (LBS)"
height = "HEIGHT (IN)"
;
* onde way to suppress the equation ... look at the LOG message;
plot weight*height / nostat modelht=1e6;
run;
quit;
* works with GPLOT;
goptions htext=4.5;
* match to PROC REG plot;
axis1 order=40 to 160 by 20 minor=none label=(a=90 "WEIGHT (LBS)");
axis2 order=50 to 72.5 by 2.5 minor=none offset=(1,1) label=("HEIGHT (IN)");
* add regression line;
symbol1 color=red v=dot ci=blue i=rl h=3 l=3 width=2;
filename gout 'z:\procgplot.png';
title h=6 'DATA PLOTTED WITH PROC GPLOT' ls=2;
proc gplot data=sashelp.class;
plot weight * height / vaxis=axis1 haxis=axis2;
run;
quit;
hi ... you are correct, but you could always use GPLOT (and there's most likely a very nice looking answer using SGPLOT) ....
goptions reset=all hsize=6in vsize=4in ftext="calibri"
gunit=pct dev=png gsfname=gout;
symbol1 color=red v=dot ci=blue h=3 width=2;
filename gout 'z:\procreg.png';
title 'DATA PLOTED WITH PROC REG' ls=2;
proc reg data=sashelp.class noprint;
var weight height;
model weight = height;
label
weight = "WEIGHT (LBS)"
height = "HEIGHT (IN)"
;
* onde way to suppress the equation ... look at the LOG message;
plot weight*height / nostat modelht=1e6;
run;
quit;
* works with GPLOT;
goptions htext=4.5;
* match to PROC REG plot;
axis1 order=40 to 160 by 20 minor=none label=(a=90 "WEIGHT (LBS)");
axis2 order=50 to 72.5 by 2.5 minor=none offset=(1,1) label=("HEIGHT (IN)");
* add regression line;
symbol1 color=red v=dot ci=blue i=rl h=3 l=3 width=2;
filename gout 'z:\procgplot.png';
title h=6 'DATA PLOTTED WITH PROC GPLOT' ls=2;
proc gplot data=sashelp.class;
plot weight * height / vaxis=axis1 haxis=axis2;
run;
quit;
MikeZdeb, Thanks so much for your kind and generous help. Your answer is nice. I found it suppress the equation and stat at the margin. The trick lies in second gplot proc. Thanks a million. The only imperfection is that the distance from vaxis label to vaxis is a little large if I do not use gunit=pct ( I use default).
hi ... here's one way to move axis labels closer to the axes (it's a bit of "trial-and-error" specifying the X value for the Y-axis label and Y value for the X-axis label) ...
ps looks as if you made your own comment the correct answer !!!
* make an annotate data set to add axis labels;
data anno;
xsys = '6'; ysys = '2'; x = 6; y = 100; angle = 90; text = "WEIGHT (LBS)";
output;
xsys = '2'; ysys = '6'; x = 61.25; y = 3; angle = 0; text = "HEIGHT (IN)";
output;
run;
* match to PROC REG plot ... specify blank labels to make room for annotate labels;
axis1 order=40 to 160 by 20 minor=none label=(a=90 " ");
axis2 order=50 to 72.5 by 2.5 minor=none offset=(1,1) label=(" ");
* add regression line;
symbol1 color=red v=dot ci=blue i=rl h=3 l=3 width=2;
filename gout 'z:\procgplot2.png';
title h=6 'DATA PLOTTED WITH PROC GPLOT' ls=2;
proc gplot data=sashelp.class annotate=anno;
plot weight * height / vaxis=axis1 haxis=axis2;
run;
quit;
MikeZdeb , Thanks so much again for your immediate reply. I am testing your code to modify the distance.
Thanks a lot, Is it possible to move the whole data area (including haxis and vaxis ) closer to the vaxis label rather than using annotate method. I was trying Origin=(), but failed.
Please look at gif. The distance from vaxis label to vaxis is large. I mean to move vaxis and data area closer to "city output" without changing graphic size (hsize=6 vsize=4 ftext="arial" htext=2); Below is simplified code of your advice.
goptions reset=all hsize=6 vsize=4 ftext="arial" htext=2;
symbol1 color=red v=plus ci=blue i=rl l=1 width=5;
title ' ';
axis1 label=('Mean city') minor=none;
axis2 label=(angle=90 "Mean output") minor=none;
proc gplot data=TEXT.CSVGUTE;
plot a*b / haxis=axis1 vaxis=axis2;
run;
Try to post it as GRAPH forum .
https://communities.sas.com/community/support-communities/sas_graph_and_ods_graphics
Or you can use Windows accessories - paint tool . That is easy . OR PhotoShop - my favorite .
Ksharp
hi ... sorry for the delay here
here's a question ... is the y-variable formatted?
if you look the attached, the y-axis label is much further away from the y-axis values in GPLOT10 than in GPLOT3 and the only difference was the format used for the y-axis variable ...
proc gplot data=sashelp.class;
plot weight * height / vaxis=axis1 haxis=axis2;
format weight 10.;
run;
quit;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.