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.
Calling all data scientists and open-source enthusiasts! Want to solve real problems that impact your company or the world? Register to hack by August 31st!
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.