colorSymbol | R Documentation |
In ChemoSpec
and ChemoSpec2D
, the user may use any color name/format
known to R. The current color scheme of a Spectra
or
Spectra2D
object
may be determined using sumGroups
or sumSpectra
.
The colors can also be queried and changed using conColScheme
.
Colors are stored as character vectors and symbols as numeric vectors.
An important fact to keep in mind is that most people with normal vision cannot distinguish
more than about 8-12 colors, and doing so depends upon the viewing circumstances:
if on paper, printer, ink and paper type all matter, and if on a screen, the background color
makes a big difference. Further, color-blind individuals have additional challenges.
A great discussion of color issues can be found in the colorspace
package. The
Polychrome
package has further discussion and utilities for choosing qualitative
colorschemes, including those for color-blind individuals.
ChemoSpec
, but not ChemoSpec2D
, can also create plots using
the built-in symbols and lower case letters. This is useful for color-blind individuals,
plots in rgl
which can't plot regular symbols, and plots for where there are
more groups than could be reasonably coded in color. A good discussion of which symbols
are most readily distinguished can be found in Robinson: "Good Plot Symbols by Default"
Journal of Computational and Graphical Statistics DOI: 10.1080/10618600.2019.1637746
ChemoSpecUtils
supplies four color/symbol schemes for your consideration.
If the particular order of colors in any of these does not suit your needs, you can always
choose the ones you want, and/or rearrange the order, or simply provide your own.
The colors and symbols produced by gr.cols = "auto"
in the import functions.
Col8
provides eight unique colors. These are more saturated
than the automatic colors.
Col12
provides a mostly paired set of 12 unique colors suitable for groups
that come in pairs.
Col7
provides seven color-blind friendly colors. These can be visualized
at https://projects.susielu.com/viz-palette by using the hex codes obtained
by typing data(Col7); Col7
in the R
console.
Bryan A. Hanson (DePauw University).
# Make a plot showing all the built-in color options
data(Col7)
data(Col12)
data(Sym12)
data(Col8)
data(Sym8)
# You need to install package "RColorBrewer" to display the default color scheme
if (requireNamespace("RColorBrewer", quietly = TRUE)) {
auto <- RColorBrewer::brewer.pal(8, "Set1")
}
sp <- 0.75 # space between major plot elements
tsp <- 0.15 # additional space between points and color swatches/descriptive text
h <- 0.25 # height of the swatch
y <- 0.0 # bottom of the plot, the reference point
# empty plot
plot(1:12, rep(0.0, 12),
type = "n", yaxt = "n", xaxt = "n", bty = "n",
xlab = "", ylab = "", ylim = c(0, 3.5)
)
text(6.5, y + h + tsp * 4 + sp * 3.5,
labels = "Automatic Color & Symbol Options", cex = 1.25, font = 2
)
# Col12
for (i in 1:12) {
rect(i - 0.5, y, i + 0.5, y + h, border = NA, col = Col12[i])
}
points(1:12, rep(y + h + tsp, 12), pch = Sym12)
text(0.6, y + h + tsp * 2, adj = 0,
labels = "gr.cols = 'Col12' 12 mostly paired distinct colors/symbols"
)
# Col8
for (i in 1:8) {
rect(i - 0.5, y + sp, i + 0.5, y + sp + h, border = NA, col = Col8[i])
}
points(1:8, rep(y + h + tsp + sp, 8), pch = Sym8)
text(0.6, y + h + tsp * 2 + sp, adj = 0,
labels = "gr.cols = 'Col8' 8 distinct colors/symbols"
)
# auto (default)
if (requireNamespace("RColorBrewer", quietly = TRUE)) {
for (i in 1:8) {
rect(i - 0.5, y + sp * 2, i + 0.5, y + sp * 2 + h, border = NA, col = auto[i])
}
points(1:8, rep(y + h + tsp + sp * 2, 8), pch = Sym8)
text(0.6, y + h + tsp * 2 + sp * 2, adj = 0,
labels = "gr.cols = 'auto' 8 distinct colors/symbols"
)
}
# colorblind-friendly
for (i in 1:7) {
rect(i - 0.5, y + sp * 3, i + 0.5, y + sp * 3 + h, border = NA, col = Col7[i])
}
points(1:7, rep(y + h + tsp + sp * 3, 7), pch = Sym8[1:7])
text(0.6, y + h + tsp * 2 + sp * 3, adj = 0,
labels = "gr.cols = 'Col7' 7 colorblind-friendly colors"
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.