Data visualization with SAS programming

Why I cannot change axis tick values in proc sgplot?

Reply
Occasional Contributor
Posts: 6

Why I cannot change axis tick values in proc sgplot?

The variable EDUCATION has values 1 2 3 4 5 6, which stand for graduate_school, university, high_school, etc.

 

I am trying to plot a standardized segment bar plot as following (picture 1), and I'm also trying to change the tick value to graduate_school, etc, which are what these value really mean. 

 

%let education_label = "graduate_school" "university" "high_school"
"others" "unknown1" "unknown2";
proc sgplot data=Freq_Education_default;
vbar EDUCATION / response = percent group=default
groupdisplay=stack;
xaxis discreteorder=data valuesdisplay =(&education_label);
yaxis grid values=(0 to 100 by 10) label="Percentage of total in group";
run;

 

However, if I change "valuesdisplay" to "values", the plot changes to picture 2, neither of two pictures is what I am aiming for. 

 

1.png

 

2.png

 

Grand Advisor
Posts: 16,375

Re: Why I cannot change axis tick values in proc sgplot?

Use a format, not a macro. If a level was missing the labels wouldn't align automatically, whereas they would with a format.

 

 

proc format;
value educ_fmt
1="graduate_school"
2="university"
3="high_school"
..
9 = "unknown2";
run;

Then apply the format within your proc.

 

proc sgplot data=Freq_Education_default;
vbar EDUCATION / response = percent group=default
groupdisplay=stack;

format education educ_fmt.;

xaxis discreteorder=data;
yaxis grid values=(0 to 100 by 10) label="Percentage of total in group";
run;

 

 

Occasional Contributor
Posts: 6

Re: Why I cannot change axis tick values in proc sgplot?

Reeza

 

I really appreciate your help.

 

I eventually get what I want. 

 

Again, thanks so much.

 

Henry

Post a Question
Discussion Stats
  • 2 replies
  • 79 views
  • 0 likes
  • 2 in conversation