- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I want a line with Pap on the x-axis and Avg on the y-axis. the value on x-axis and y-axis should be the same order as in the data. the value on the y-axis should be from 50000 to 35000 with 5000 apart. The area under the line needs to be filled. Any suggestions or ideas will be greatly appreciated!
Avg Pap
$19,053.90 50294
$19,155.55 5J383
$19,371.27 5N916
$20,208.01 5SS32
$20,248.28 50382
$20,283.07 5K426
$20,325.72 5L390
$20,556.82 50601
$20,950.14 5N559
$21,083.23 53173
$21,126.84 51591
$21,323.31 5J277
$21,463.89 5L276
$21,519.23 51395
$21,555.70 5K402
$21,685.32 50824
$21,744.93 55106
$21,757.55 53322
$21,963.55 5L289
$22,044.51 50254
$22,217.93 55519
$22,325.57 5L433
$22,475.74 5J617
$22,853.99 53851
$23,074.72 5L432
$23,162.03 51900
$23,233.84 5M579
$23,962.97 55710
$24,627.27 51490
$24,851.93 5L807
$25,165.05 5P007
$25,293.85 99294
$25,313.81 53003
$25,539.16 53253
$25,572.13 5L190
$26,342.46 53503
$26,569.69 5N202
$26,774.96 54562
$27,094.48 5I155
$27,655.79 5K012
$27,682.86 53618
$27,731.45 52297
$28,274.90 5K982
$30,011.96 5N847
$30,835.18 5H055
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
From @Jay54 SGPLOT with BAND works like a charm, set the lower bound to 0 if you want the area filled in.
Thanks for posting sample data, preferably in a data step in the future, which is the first step in my code below.
data have;
informat value comma. cat $5.;
format value dollar20.2;
input value cat;
start=0;
cards;
$19,053.90 50294
$19,155.55 5J383
$19,371.27 5N916
$20,208.01 5SS32
$20,248.28 50382
$20,283.07 5K426
$20,325.72 5L390
$20,556.82 50601
$20,950.14 5N559
$21,083.23 53173
$21,126.84 51591
$21,323.31 5J277
$21,463.89 5L276
$21,519.23 51395
$21,555.70 5K402
$21,685.32 50824
$21,744.93 55106
$21,757.55 53322
$21,963.55 5L289
$22,044.51 50254
$22,217.93 55519
$22,325.57 5L433
$22,475.74 5J617
$22,853.99 53851
$23,074.72 5L432
$23,162.03 51900
$23,233.84 5M579
$23,962.97 55710
$24,627.27 51490
$24,851.93 5L807
$25,165.05 5P007
$25,293.85 99294
$25,313.81 53003
$25,539.16 53253
$25,572.13 5L190
$26,342.46 53503
$26,569.69 5N202
$26,774.96 54562
$27,094.48 5I155
$27,655.79 5K012
$27,682.86 53618
$27,731.45 52297
$28,274.90 5K982
$30,011.96 5N847
$30,835.18 5H055
;
run;
proc sgplot data=have;
band x=cat lower=start upper=value;
yaxis values=(0 to 35000 by 5000);
label value='Avg Amount' cat='PAP';
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
See the 2D area plot on this page:
http://robslink.com/SAS/democd7/aaaindex.htm
I like to start here when creating graphs, since it has both the code and image. One drawback is that it uses GPLOT procedures when SG Procs are more common these days, SGPLOT.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
With SGPLOT, you can try using the BAND plot, with constant value for the bottom edge.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
From @Jay54 SGPLOT with BAND works like a charm, set the lower bound to 0 if you want the area filled in.
Thanks for posting sample data, preferably in a data step in the future, which is the first step in my code below.
data have;
informat value comma. cat $5.;
format value dollar20.2;
input value cat;
start=0;
cards;
$19,053.90 50294
$19,155.55 5J383
$19,371.27 5N916
$20,208.01 5SS32
$20,248.28 50382
$20,283.07 5K426
$20,325.72 5L390
$20,556.82 50601
$20,950.14 5N559
$21,083.23 53173
$21,126.84 51591
$21,323.31 5J277
$21,463.89 5L276
$21,519.23 51395
$21,555.70 5K402
$21,685.32 50824
$21,744.93 55106
$21,757.55 53322
$21,963.55 5L289
$22,044.51 50254
$22,217.93 55519
$22,325.57 5L433
$22,475.74 5J617
$22,853.99 53851
$23,074.72 5L432
$23,162.03 51900
$23,233.84 5M579
$23,962.97 55710
$24,627.27 51490
$24,851.93 5L807
$25,165.05 5P007
$25,293.85 99294
$25,313.81 53003
$25,539.16 53253
$25,572.13 5L190
$26,342.46 53503
$26,569.69 5N202
$26,774.96 54562
$27,094.48 5I155
$27,655.79 5K012
$27,682.86 53618
$27,731.45 52297
$28,274.90 5K982
$30,011.96 5N847
$30,835.18 5H055
;
run;
proc sgplot data=have;
band x=cat lower=start upper=value;
yaxis values=(0 to 35000 by 5000);
label value='Avg Amount' cat='PAP';
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Cool.
If the x-axis is really discrete, maybe a VBARPARM would work better? Not sure what "slope" means between to category values.
proc sgplot data=have;
vbarparm category=cat response=value / barwidth=1 fill nooutline;
yaxis values=(0 to 35000 by 5000);
xaxis valuesrotate=vertical valueattrs=(size=6) discreteorder=data;
label value='Avg Amount' cat='PAP';
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
It was sorted continuously so I'm assuming some ranking? I would suspect, your correct and either VBARPARM or HBARPARM would be a better graphing modality. I would suggest HBARPARM as it makes the categories more legible.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Thanks very much for the help! I got the graph. But my xaxis is croweded with all the values of Pap. I want to get rid off it and just keep the label "PAP". How should I do that? Thank you again.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
On the XAXIS statement, add: ddisplay=(noticks novalues)
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content