I am trying to plot points using filled shapes from position 21 of the shapes.
d <- data.frame(expand.grid(a=letters[1:4],
b=factor(1:2)), y=rnorm(8),x=rnorm(8))
This works very well:
ggplot(d, aes(x=x, y=y,fill=a,color=a)) +
geom_point(aes(shape=b,fill=a),size=4) +
scale_shape_manual(values=c(21,22))
I want to have the outline color of the shapes to be black, so I thought that setting color="black" outside the aes()
would do the trick:
ggplot(d, aes(x=x, y=y,fill=a,color=a)) +
geom_point(aes(shape=b,fill=a),color="black",size=4) +
scale_shape_manual(values=c(21,22))
This works inside the plot. However, the colors in the legends are all set to black.
How to get the legend as above?
For some reason, the fill legend defaults to shape symbol 1 (solid circle), so it shows the color rather than the fill aesthetic. Add this to the ggplot command:
+ guides(fill=guide_legend(override.aes=list(shape=21)))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With