色彩 | R 语言中的渐变色: viridis 包(色盲友好的颜色包)

本文介绍了R语言中的viridis包,它提供了多种色盲友好的颜色方案,适用于图表和热图的色彩填充。通过示例展示了如何生成不同颜色实例、使用在barplot和ggplot2中,以及查看8种预设颜色方案。此外,还演示了使用viridis和mako颜色方案创建热图的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文章已经生成可运行项目,

viridis [ˈvɪrɪˌdɪs] n.翠绿色;

该包提供了一系列 色盲友好的颜色。
Robust to colorblindness, so that the above properties hold true for people with common forms of colorblindness, as well as in grey scale printing, and
Pretty, oh so pretty

install.packages("viridis")

1.生成颜色实例: 参数类似

library(viridis)

#c1=viridis(n=10, alpha = 1, begin = 0, end = 1, direction = 1); c1
c1=viridis(10, alpha = 1, begin = 0, end = 1, direction = 1, option = "A"); c1
# n 色彩个数
# alpha 不透明度,1表示完全不透明,0表示完全透明。
# begin 和 end 表示 hue 开始和结束的位置[0,1]
# direction 颜色方向,1从深到浅,-1反之。
# option 表示8种颜色方案,可以换前面的函数名,也可以换 option 种的字母A-H

barplot( rep(1, length(c1)), col=c1, 
         border=NA, yaxt='n', space=0, main="")

在这里插入图片描述

2.官方教程

library(ggplot2)
ggplot(data.frame(x = rnorm(10000), y = rnorm(10000)), aes(x = x, y = y)) +
  geom_hex() + coord_fixed() +
  scale_fill_viridis() + theme_bw()

在这里插入图片描述

3.查看8种颜色方案

draw=function(colorname, title="", n=100){
  if(title==""){
    title=paste0(colorname, ", n=", n)
  }
  #print(title)
  cols=do.call(colorname, list(n, alpha = 1, begin = 0, end = 1, direction = -1) )
  barplot( rep(1, length(cols)), col=cols, 
           border=NA, yaxt='n', space=0, main=title)
}
par(mfrow=c(8,2), mar=c(0,0,1.5,0) )
for(i in c("viridis", "magma", "inferno", "plasma", 
           "cividis", "rocket", "mako", "turbo")){
  print(i)
  draw(i, n=10)
  draw(i, n=100)
}

8种渐变色

4.热图

前7种渐变色都特别适合热图。

set.seed(2022)
test =  matrix(rnorm(200), 20, 10)
test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] + 3
test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] + 2
test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] + 4
colnames(test) = paste("Test", 1:10, sep = "")
rownames(test) = paste("Gene", 1:20, sep = "")
#
dim(test)

# Draw heatmaps
library(pheatmap)
pheatmap(test)

在这里插入图片描述

# viridis
pheatmap(test, color = viridis(8), main="viridis")

在这里插入图片描述

# mako
pheatmap(test, color = viridis(8, option = "G"), main="mako")

在这里插入图片描述

ref

  • https://cran.r-project.org/web/packages/viridis/vignettes/intro-to-viridis.html

== End ==

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值