Hi,
I want to plot a graph to compare the real sales and planned sales over the years, the original dataset is
Year | Desired | Real |
2006 | 987 | 689 |
2007 | 588 | 827 |
2008 | 313 | 150 |
2009 | 716 | 349 |
2010 | 575 | 376 |
2011 | 686 | 979 |
2012 | 189 | 288 |
2013 | 509 | 112 |
2014 | 741 | 828 |
2015 | 309 | 967 |
I wonder if there is any possible ways in SAS to get the same effects as in the following graph.
Here you go:
data sales;
input Year Desired Real;
cards;
2006 987 689
2007 588 827
2008 313 150
2009 716 349
2010 575 376
2011 686 979
2012 189 288
2013 509 112
2014 741 828
2015 309 967
;
run;
proc sgplot data=sales;
vbarparm category=Year response=Desired / discreteoffset=-0.17 barwidth=0.3;
vbarparm category=Year response=Real / discreteoffset=0.17 barwidth=0.3;
run;
You can use PROC SGPANEL after you play with your data a little bit - that will give you graphs like you want
of course. Transpose the data from "wide form" to "long form" and use PROC SGPLOT like this:
data Have;
input Year Desired Real ;
datalines;
2006 987 689
2007 588 827
2008 313 150
2009 716 349
2010 575 376
2011 686 979
2012 189 288
2013 509 112
2014 741 828
2015 309 967
;
data Want;
set Have;
Group = "Desired"; Value = Desired; output;
Group = "Real "; Value = Real; output;
drop Desired Real;
run;
proc sgplot data=Want;
vbar Year / response=Value group=Group groupdisplay=cluster;
run;
Hi, Rick
Thanks for your reply, it really works. I really appreciate it , but I don't know how to accept both two replies as solutions.
You can only accept one solution, so give "Likes" to other helpful coments and post a comment (which you have already done!) that indicates that another answer also works. Many times in SAS there are three or four ways to solve the same problem.
I'm glad your problem is resolved.
Here you go:
data sales;
input Year Desired Real;
cards;
2006 987 689
2007 588 827
2008 313 150
2009 716 349
2010 575 376
2011 686 979
2012 189 288
2013 509 112
2014 741 828
2015 309 967
;
run;
proc sgplot data=sales;
vbarparm category=Year response=Desired / discreteoffset=-0.17 barwidth=0.3;
vbarparm category=Year response=Real / discreteoffset=0.17 barwidth=0.3;
run;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.
Ready to level-up your skills? Choose your own adventure.