I'm trying to implement the solution given in the forum post Proc sgplot: plotting different colors and markers for several groups in a scatter plot, but my plot markers are not changing with group. Here's my code:
* Create attribute map; data plotattrs; retain id "myid"; length value 3.0 markercolor $ 6 markersymbol $ 6; input value markercolor $ markersymbol $; datalines; 1 red plus 2 green x ; run; * Plot data; proc sgplot data = sashelp.iris dattrmap = plotattrs; scatter x = petallength y = petalwidth / group = species attrid = myid; run;
The plot that is generated represents group by color, but not by marker type:
How can I make the plot marker type vary with group like the marker color does?
The value has to match the value of the group variable.
Try
data plotattrs; retain id "myid"; length value $ 10 markercolor $ 6 markersymbol $ 6; input value markercolor $ markersymbol $; datalines; Setosa red plus Versicolor2 green x Virginica blue diamond ; run; * Plot data; proc sgplot data = sashelp.iris dattrmap = plotattrs; scatter x = petallength y = petalwidth / group = species attrid = myid; run;
The value has to match the value of the group variable.
Try
data plotattrs; retain id "myid"; length value $ 10 markercolor $ 6 markersymbol $ 6; input value markercolor $ markersymbol $; datalines; Setosa red plus Versicolor2 green x Virginica blue diamond ; run; * Plot data; proc sgplot data = sashelp.iris dattrmap = plotattrs; scatter x = petallength y = petalwidth / group = species attrid = myid; run;
Thank you-- I knew I was missing something basic.
You may also want to consider using longer text fields by default for you options just so you don't do what I did and tryto stuff "diamond" into a 6 character field.
ods graphics / attrpriority=none;
proc sgplot data = sashelp.iris;
styleattrs datacolors=(red yellow blue) ;
scatter x = petallength y = petalwidth /
jitter group = species;
run;
Thanks for this, Ksharp. I wasn't aware of the "styleattrs" statement in proc sgplot.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.