BookmarkSubscribeRSS Feed
gx2144
Calcite | Level 5

The orientation of the label in proc sgplot is vertical. How can I change the label into horizontal?

proc sgplot data = baseline;
histogram salary/datalabel;
density salary;
density salary/type= kernal;
keylegend / location=inside position=topright;
run;

 

2 REPLIES 2
gx2144
Calcite | Level 5

gx2144_0-1611884347279.png

 

Ksharp
Super User

It is real uneasy. Maybe somebody could point you a simple solution.

ods select none;
ods output sgplot=sgplot;
proc sgplot data = sashelp.heart;
histogram weight/datalabel ;
density weight;
density weight/type= kernel;
keylegend / location=inside position=topright;
run;
ods select all;

data a;
 set sgplot;
 _BIN_WEIGHT_DATALABELTYPE=BIN_WEIGHT_DATALABELTYPE_Auto__Y+0.5;
 if not missing( BIN_WEIGHT_DATALABELTYPE_Auto__X );
 keep BIN_WEIGHT_DATALABELTYPE_Auto__X BIN_WEIGHT_DATALABELTYPE_Auto__Y BIN_WEIGHT_DATALABELTYPE_Auto_DL
_BIN_WEIGHT_DATALABELTYPE;
 format BIN_WEIGHT_DATALABELTYPE_Auto_DL 8.2;
run;
data b;
 set sgplot;
 if not missing(NORMLD_WEIGHT___X);
 keep NORMLD_WEIGHT___X NORMLD_WEIGHT___Y;
run;
data c;
 set sgplot;
 if not missing(KERNEL_WEIGHT___X) ;
 keep KERNEL_WEIGHT___X KERNEL_WEIGHT___Y;
run;

proc sql;
create table temp as
select a.*,NORMLD_WEIGHT___Y 
 from a,b
  group by BIN_WEIGHT_DATALABELTYPE_Auto__X
   having abs(BIN_WEIGHT_DATALABELTYPE_Auto__X-NORMLD_WEIGHT___X) =
     min(abs(BIN_WEIGHT_DATALABELTYPE_Auto__X-NORMLD_WEIGHT___X));

create table have as
select temp.*,KERNEL_WEIGHT___Y 
 from temp,c
  group by BIN_WEIGHT_DATALABELTYPE_Auto__X
   having abs(BIN_WEIGHT_DATALABELTYPE_Auto__X-KERNEL_WEIGHT___X) =
     min(abs(BIN_WEIGHT_DATALABELTYPE_Auto__X-KERNEL_WEIGHT___X));
quit;


proc sgplot data=have;
vbarparm category= BIN_WEIGHT_DATALABELTYPE_Auto__X response=BIN_WEIGHT_DATALABELTYPE_Auto__Y / barwidth=1 ;
scatter x=BIN_WEIGHT_DATALABELTYPE_Auto__X y=_BIN_WEIGHT_DATALABELTYPE/ 
 markerchar=BIN_WEIGHT_DATALABELTYPE_Auto_DL discreteoffset=-0.1 ;
series x= BIN_WEIGHT_DATALABELTYPE_Auto__X y=NORMLD_WEIGHT___Y /
 name='normal' legendlabel='Normal' smoothconnect lineattrs=graphdata1(thickness=3);
series x= BIN_WEIGHT_DATALABELTYPE_Auto__X y=KERNEL_WEIGHT___Y /
 name='kernel' legendlabel='Kernel' smoothconnect lineattrs=graphdata2(thickness=3);
keylegend 'normal' 'kernel'/position=ne location=inside;
run;

SGPlot29.png

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 875 views
  • 0 likes
  • 2 in conversation