如何将R基础包中的颜色函数替换为色盲友好型调色板?
适配色盲人群的R基础包调色板解决方案
直接用R基础包grDevices内置的hcl.colors()函数替换原代码中的topo.colors()即可,该函数支持多种经过验证的色盲安全配色方案,完全无需额外安装扩展包。
推荐几种适配色盲的调色板选项:
"Okabe-Ito":经典8色分类调色板,色彩区分度极高,适配红绿色盲、蓝黄色盲人群"viridis":兼具连续/分类适配性的配色,对色盲人群友好的同时视觉效果统一"plasma":渐变色系,同样具备色盲安全特性,适合需要渐变表达的场景
修改后的代码如下:
# 选用Okabe-Ito色盲友好调色板(若分类数超过8,可换viridis/plasma) colors.use = hcl.colors(nlevels(fish$Region), palette = "Okabe-Ito") for (i in 1:nlevels(fish$Region)) { predictions = predict(g1, type="response", newdata = data.frame(Distance= 1000, Average_Depth = seq(0,3000,length=1000), Region = levels(fish$Region)[i])) if (i == 1) { plot(seq(0,3000,length=1000), predictions, type = 'l', col=colors.use[i], pch=i, xlab= "Depth (m)", ylab = "fish/1000 m") } else { lines(seq(0,3000,length=1000), predictions, col=colors.use[i], pch=i) } }
注:hcl.colors()从R 3.6.0版本开始成为基础包内置函数,若你的R版本较低,可使用colorspace包的同名函数,但根据需求,优先使用基础包内置的实现即可。
内容的提问来源于stack exchange,提问作者Gina
相关产品推荐
相关产品推荐

