The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
Color blindness is color vision deficiency, which means people with color blindness may be not aware of differences among colors that are obvious to the people without it. This package is designed to provide a collection of safe colors for plots such as heatmaps, pie chart, and try to find a solution for acceptable figures for all the end users.
There are lots of packages already collected lots of safe colors. I list some of them, but not limited here.
For this package, I will try to collect as much as possible safe color sets ready to use.
The tool used to simulate the color vision deficiency is called CVD simulator. I list some of packages here with CVD simulator.
Hans Brettel 1997(Brettel et al., 1997)
Francoise Vienot 1999(Viénot et al., 1999) (implemented in this package and package dichromat )
Gustavo M. Machado 2009(Machado et al., 2009) (implemented in package colorspace)
Claire D. McWhite and Claus O. Wilke. colorblindr
To plot figures by colors of this package, there are three steps:
select correct safe color set.
plot with the color set.
check the plot by CVD simulator.
For example if we want to plot a heatmap.
library(colorBlindness)
mat <- matrix(1:81, nrow = 9, ncol = 9)
library(ggplot2)
library(reshape2)
mat1 <- melt(t(mat[9:1, ]))
len <- length(Blue2DarkRed12Steps)-1
mat1$v2 <- cut(mat1$value,
breaks = seq(0,ceiling(81/len)*len,
length.out = len+1))
ht <- ggplot(mat1) +
geom_tile(aes(x=Var1, y=Var2, fill=v2)) +
scale_fill_manual(values=Blue2DarkRed12Steps) +
theme_bw()
# check the plot by CVD simulator
cvdPlot(ht)
If you have figures which is not safe to color blindness people, you can try to replace the colors by replacePlotColor
function.
cvdPlot(replacePlotColor(displayColors(c("Red", "Green", "blue"))))
If you have a fluorescence image and want to change the colors, you can read the figure and view the effect of color changed figure. If it is acceptable, you can draw it into a file.
library(grid)
library(png)
path <- system.file("extdata", package = "colorBlindness")
img <- readPNG(file.path(path, "fluorescence.microscopy.images.png"))
g <- rasterGrob(img, interpolate=TRUE)
grid.draw(cvdPlot(g,
layout = c("origin", "deuteranope", "protanope",
"enhanced", "enhanced.deuteranope",
"enhanced.protanope")))
newImg <- replacePlotColor(g)
outfile <- tempfile(fileext = ".png")
png(outfile)
grid.draw(newImg)
dev.off()
## quartz_off_screen
## 2
To plot figures for literature, there serveral things we need to consider:
Figure format and size;
Font family and size;
Proper figure colors that are distinguishable by people with colorblindness and for printed in black and white.
setPDFopt
function can provide you preset figure size for PDF outputs.
pdf.options()[c("width", "height", "pointsize")]
## $width
## [1] 7
##
## $height
## [1] 7
##
## $pointsize
## [1] 12
setPDFopt()
pdf.options()[c("width", "height", "pointsize")]
## $width
## 1col
## 3.54
##
## $height
## 1col
## 3.54
##
## $pointsize
## [1] 8
There are more than 15 Color palettes for color blindness from Martin Krzywinski and et al.
See also GETTING INTO VISUALIZATION OF LARGE BIOLOGICAL DATA SETS and “Controversial Color Use on Maps”(Brewer, 1997).
displayAvailablePalette(color="white")
The displayAllColors
funciton can be used to show the effect for color vision deficiency. Here we dispaly color collection from Bang Wong(Wong, 2011).
displayAllColors(safeColors, color="white")
replacePlotColor
effect for Ishihara Color Test.## replace the color of a file
ishihara29 <- system.file("extdata", "Plate3.png", package = "colorBlindness")
library(png)
img <- readPNG(ishihara29)
g <- rasterGrob(img, interpolate=TRUE)
grid.draw(cvdPlot(g,
layout = c("origin", "deuteranope", "protanope",
"enhanced", "enhanced.deuteranope",
"enhanced.protanope")))
sessionInfo()
## R version 4.0.5 (2021-03-31)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Big Sur 10.16
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRblas.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
##
## locale:
## [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] grid stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] png_0.1-7 reshape2_1.4.4 ggplot2_3.3.3
## [4] colorBlindness_0.1.9
##
## loaded via a namespace (and not attached):
## [1] Rcpp_1.0.6 highr_0.8 plyr_1.8.6 bslib_0.2.4
## [5] compiler_4.0.5 pillar_1.6.0 jquerylib_0.1.3 tools_4.0.5
## [9] digest_0.6.27 jsonlite_1.7.2 evaluate_0.14 lifecycle_1.0.0
## [13] tibble_3.1.0 gtable_0.3.0 pkgconfig_2.0.3 rlang_0.4.10
## [17] DBI_1.1.1 yaml_2.2.1 xfun_0.22 withr_2.4.1
## [21] stringr_1.4.0 dplyr_1.0.5 knitr_1.32 gridGraphics_0.5-1
## [25] generics_0.1.0 sass_0.3.1 vctrs_0.3.7 cowplot_1.1.1
## [29] tidyselect_1.1.0 glue_1.4.2 R6_2.5.0 fansi_0.4.2
## [33] rmarkdown_2.7 farver_2.1.0 purrr_0.3.4 magrittr_2.0.1
## [37] scales_1.1.1 htmltools_0.5.1.1 ellipsis_0.3.1 assertthat_0.2.1
## [41] colorspace_2.0-0 labeling_0.4.2 utf8_1.2.1 stringi_1.5.3
## [45] munsell_0.5.0 crayon_1.4.1
Brettel, H., Viénot, F., & Mollon, J. D. (1997). Computerized simulation of color appearance for dichromats. JOSA A, 14(10), 2647–2655.
Brewer, C. A. (1997). Spectral schemes: Controversial color use on maps. Cartography and Geographic Information Systems, 24(4), 203–220. https://doi.org/10.1559/152304097782439231
Machado, G. M., Oliveira, M. M., & Fernandes, L. A. (2009). A physiologically-based model for simulation of color vision deficiency. IEEE Transactions on Visualization and Computer Graphics, 15(6), 1291–1298.
Viénot, F., Brettel, H., & Mollon, J. D. (1999). Digital video colourmaps for checking the legibility of displays by dichromats. Color Research & Application: Endorsed by Inter-Society Color Council, the Colour Group (Great Britain), Canadian Society for Color, Color Science Association of Japan, Dutch Society for the Study of Color, the Swedish Colour Centre Foundation, Colour Society of Australia, Centre Français de La Couleur, 24(4), 243–252.
Wong, B. (2011). Points of view: Color blindness. Nature Publishing Group.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.