Shape palettes for overlapping and non-overlapping points.
cleveland_shape_pal(overlap = TRUE)
In the Elements of Graphing Data, W.S. Cleveland suggests two shape palettes for scatter plots: one for overlapping data and another for non-overlapping data. The symbols for overlapping data relies on pattern discrimination, while the symbols for non-overlapping data vary the amount of fill. This palette attempts to create these palettes. However, I found that these were hard to replicate. Using the R shapes and unicode fonts: the symbols can vary in size, they are dependent of the fonts used, and there does not exist a unicode symbol for a circle with a vertical line. If someone can improve this palette, please let me know.
Following Tremmel (1995), I replace the circle with a vertical line with an encircled plus sign.
cleveland_shape_pal() supports up to five values.
Cleveland WS. The Elements of Graphing Data. Revised Edition. Hobart Press, Summit, NJ, 1994, pp. 154-164, 234-239.
Tremmel, Lothar, (1995) "The Visual Separability of Plotting Symbols in Scatterplots", Journal of Computational and Graphical Statistics, https://www.jstor.org/stable/1390760
### (discrete). library("ggplot2") p <- ggplot(mtcars) + geom_point(aes(x = wt, y = mpg, shape = factor(gear))) + facet_wrap(~am) + theme_bw() # overlapping symbol palette p + scale_shape_cleveland()# non-overlapping symbol palette p + scale_shape_cleveland(overlap = FALSE)