BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
DME790
Pyrite | Level 9

Hi All,

 

I have created a combo graph that has two bars and three lines, however the second bar sits behind the first one.

 

How do I get them to sit side by side to each other?

 

 

Data test;
 Input WEEK_END_DT $ TransA TransB PCTA PCTB PCTC;
 Datalines;
A 5063 3487 0.170074793 0.133479212 0.282554088
B 8094 9028 0.146952298 0.097315235 0.270777721
C 9512 10226 0.144833102 0.095077215 0.282205541
D 11004 11326 0.163079597 0.107464086 0.328004634
E 10591 10351 0.171097567 0.112158341 0.370088312
F 14045 11853 0.166789031 0.113834383 0.371648951
G 14643 10257 0.158547224 0.113666708 0.363375492
H 15739 7427 0.157418355 0.124353109 0.36062151
I 16056 6942 0.156742205 0.126345609 0.353372359
J 15074 6714 0.145029987 0.115199731 0.346439628
K 15014 4723 0.136847725 0.11575052 0.325365114
L 13918 5926 0.142005567 0.113826324 0.339268335
M 14402 4526 0.132393263 0.111817638 0.319429741
N 12071 2903 0.129682074 0.113615828 0.314756587

RUN;



Proc SGPlot data=Test;
	Title "Overal Transfers";
	VBAR WEEK_END_DT / Response=TransA Fillattrs=(Color=BIBG ) groupdisplay=stack  Legendlabel='IIE Transfers';
	VBAR WEEK_END_DT / Response=TransB Fillattrs=(Color=VIPK )groupdisplay=stack Legendlabel='NON IIE Transfers';;

	VLine WEEK_END_DT / response=PCTA y2axis lineattrs=(color=darksalmon thickness=5) Legendlabel='Total Transfer %';
	VLine WEEK_END_DT / response=PCTB y2axis lineattrs=(color=Blue thickness=5) Legendlabel='NON IIETransfer %';
	VLine WEEK_END_DT / response=PCTC y2axis lineattrs=(color=Green thickness=5) Legendlabel='IIE Transfer %';
	Yaxis values=(0 to 20000 by 2000);
	y2axis values=(0 to .50 by .02) Label='Trans %';
	format PCTA PCTB PCTC Percent.;
Run;

What I get                                         What I would like.

Graph1.JPGGraph2.JPG

 

 

Any help appreciated.

 

Cheers

 

Dean

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
PeterClemmensen
Tourmaline | Level 20

Something like this? Use VBARPARM instead of VBAR and SERIES instead of VLINE

 

Data test;
 Input WEEK_END_DT$ Trans AorB$ PCTA PCTB PCTC;
 Datalines;
A 5063 A 0.170074793 0.133479212 0.282554088
A 3487 B 0.170074793 0.133479212 0.282554088
B 8094 A 0.146952298 0.097315235 0.270777721
B 9028 B 0.146952298 0.097315235 0.270777721
C 9512 A 0.144833102 0.095077215 0.282205541
C 10226 B 0.144833102 0.095077215 0.282205541
D 11004 A 0.163079597 0.107464086 0.328004634
D 11326 B 0.163079597 0.107464086 0.328004634
E 10591 A 0.171097567 0.112158341 0.370088312
E 10351 B 0.171097567 0.112158341 0.370088312
F 14045 A 0.166789031 0.113834383 0.371648951
F 11853 B 0.166789031 0.113834383 0.371648951
G 14643 A 0.158547224 0.113666708 0.363375492
G 10257 B 0.158547224 0.113666708 0.363375492
H 15739 A 0.157418355 0.124353109 0.36062151
H 7427 B 0.157418355 0.124353109 0.36062151
I 16056 A 0.156742205 0.126345609 0.353372359
I 6942 B 0.156742205 0.126345609 0.353372359
J 15074 A 0.145029987 0.115199731 0.346439628
J 6714 B 0.145029987 0.115199731 0.346439628
K 15014 A 0.136847725 0.11575052 0.325365114
K 4723 B 0.136847725 0.11575052 0.325365114
L 13918 A 0.142005567 0.113826324 0.339268335
L 5926 B 0.142005567 0.113826324 0.339268335
M 14402 A 0.132393263 0.111817638 0.319429741
M 4526 B 0.132393263 0.111817638 0.319429741
N 12071 A 0.129682074 0.113615828 0.314756587
N 2903 B 0.129682074 0.113615828 0.314756587
RUN;

Title "Overal Transfers";
proc sgplot data=test noborder;
    vbarparm category=WEEK_END_DT response=Trans / group=AorB groupdisplay=cluster baselineattrs=(thickness=0) name='a';
    series x=WEEK_END_DT y=PCTA / y2axis lineattrs=(color=darksalmon thickness=5) name='b';
    series x=WEEK_END_DT y=PCTB / y2axis lineattrs=(color=Blue thickness=5) name='c';
    series x=WEEK_END_DT y=PCTC / y2axis lineattrs=(color=Green thickness=5) name='d';
    xaxis discreteorder=data display=(noline nolabel noticks);
    yaxis display=(noline noticks) grid values=(0 to 20000 by 2000) offsetmin=0;
    y2axis display=(noline noticks) values=(0 to .40 by .04) Label='Trans %' offsetmin=0;
    keylegend 'a' 'b' 'c' 'd';
    format PCTA PCTB PCTC Percent.;
run;

View solution in original post

3 REPLIES 3
PeterClemmensen
Tourmaline | Level 20

This task is a lot easier if you gather your Trans A/B variables in one variable Trans and create some categorical variable AorB that has values  A/B.

 

Then use a single VBAR Statement and specify group=AorB and groupdisplay=cluster

 

This link may be of help

 

https://blogs.sas.com/content/graphicallyspeaking/2016/11/27/getting-started-sgplot-part-2-vbar/

PeterClemmensen
Tourmaline | Level 20

Something like this? Use VBARPARM instead of VBAR and SERIES instead of VLINE

 

Data test;
 Input WEEK_END_DT$ Trans AorB$ PCTA PCTB PCTC;
 Datalines;
A 5063 A 0.170074793 0.133479212 0.282554088
A 3487 B 0.170074793 0.133479212 0.282554088
B 8094 A 0.146952298 0.097315235 0.270777721
B 9028 B 0.146952298 0.097315235 0.270777721
C 9512 A 0.144833102 0.095077215 0.282205541
C 10226 B 0.144833102 0.095077215 0.282205541
D 11004 A 0.163079597 0.107464086 0.328004634
D 11326 B 0.163079597 0.107464086 0.328004634
E 10591 A 0.171097567 0.112158341 0.370088312
E 10351 B 0.171097567 0.112158341 0.370088312
F 14045 A 0.166789031 0.113834383 0.371648951
F 11853 B 0.166789031 0.113834383 0.371648951
G 14643 A 0.158547224 0.113666708 0.363375492
G 10257 B 0.158547224 0.113666708 0.363375492
H 15739 A 0.157418355 0.124353109 0.36062151
H 7427 B 0.157418355 0.124353109 0.36062151
I 16056 A 0.156742205 0.126345609 0.353372359
I 6942 B 0.156742205 0.126345609 0.353372359
J 15074 A 0.145029987 0.115199731 0.346439628
J 6714 B 0.145029987 0.115199731 0.346439628
K 15014 A 0.136847725 0.11575052 0.325365114
K 4723 B 0.136847725 0.11575052 0.325365114
L 13918 A 0.142005567 0.113826324 0.339268335
L 5926 B 0.142005567 0.113826324 0.339268335
M 14402 A 0.132393263 0.111817638 0.319429741
M 4526 B 0.132393263 0.111817638 0.319429741
N 12071 A 0.129682074 0.113615828 0.314756587
N 2903 B 0.129682074 0.113615828 0.314756587
RUN;

Title "Overal Transfers";
proc sgplot data=test noborder;
    vbarparm category=WEEK_END_DT response=Trans / group=AorB groupdisplay=cluster baselineattrs=(thickness=0) name='a';
    series x=WEEK_END_DT y=PCTA / y2axis lineattrs=(color=darksalmon thickness=5) name='b';
    series x=WEEK_END_DT y=PCTB / y2axis lineattrs=(color=Blue thickness=5) name='c';
    series x=WEEK_END_DT y=PCTC / y2axis lineattrs=(color=Green thickness=5) name='d';
    xaxis discreteorder=data display=(noline nolabel noticks);
    yaxis display=(noline noticks) grid values=(0 to 20000 by 2000) offsetmin=0;
    y2axis display=(noline noticks) values=(0 to .40 by .04) Label='Trans %' offsetmin=0;
    keylegend 'a' 'b' 'c' 'd';
    format PCTA PCTB PCTC Percent.;
run;
DME790
Pyrite | Level 9

Thanks @PeterClemmensen

 

Works a treat.

 

Cheers

 

Dean

sas-innovate-2024.png

Today is the last day to save with the early bird rate! Register today for just $695 - $100 off the standard rate.

 

Plus, pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

SAS Enterprise Guide vs. SAS Studio

What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 893 views
  • 1 like
  • 2 in conversation