Shape palette from Cleveland "Elements of Graphing Data" (discrete).
Source:R/shapes.R
cleveland_shape_pal.Rd
Shape palettes for overlapping and non-overlapping points.
Note
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.
The palette cleveland_shape_pal()
supports up to five values.
References
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
See also
Other shapes:
circlefill_shape_pal()
,
scale_shape_circlefill()
,
scale_shape_cleveland()
,
scale_shape_tremmel()
,
tremmel_shape_pal()
Examples
### (discrete).
if (FALSE) {
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)
}