在做一些可视化手动添加配色的时候,遇到以下问题:
- 经常会因为细胞类型数目太多而不知道该怎么选择配色
- 选好了配色之后一个个手敲或者复制挺麻烦的
下面介绍一个配色包:paletteer(全部代码放在最后面)
1.安装
install.packages("paletteer")
- 具体使用
library(paletteer)
# 离散型调色板
d_palettes<- palettes_d_names
d_palettes
# 转换为数据框的格式
colcors_merge <- data.frame(d_palettes)
离散型 调色盘
3.选取配色
color_dat <- data.frame(color=paste0(colcors_merge$package,"::",colcors_merge$palette),length=colcors_merge$length)
View(color_dat )
结果如图所示:
color_dat展示
4.这时候只需要根据自己数据所需要的颜色数量,挑选相对应color列的内容,复制到如下代码中即可:
mycols <- paletteer_d("palettesForR::Browns")
mycols #查看具体配色
配色可直接在控制台显示出来
5.示例
mycols_2 <- paletteer_d("pals::kelly")
mycols_3 <- paletteer_d("khroma::iridescent", n = 22)
mycols_4 <- paletteer_d("palettesForR::Windows", n = 22)
彻底解决了颜色多需要手打的问题
6.放到画图函数中,修改参数即可:
scale_fill_manual(values=mycols)
7.全部代码汇总:
install.packages("paletteer")
library(paletteer)
# 离散型调色板
d_palettes<- palettes_d_names
d_palettes
colcors_merge <- data.frame(d_palettes)
color_dat <- data.frame(color=paste0(colcors_merge$package,"::",colcors_merge$palette),length=colcors_merge$length)
# 根据需求调颜色
paletteer_d("Polychrome::kelly", n = 22)
paletteer_d("pals::kelly")
paletteer_d("palettesForR::Browns")
mycols <- paletteer_d("palettesForR::Browns")
mycols_2 <- paletteer_d("pals::kelly")
mycols_3 <- paletteer_d("khroma::iridescent", n = 22)
mycols_4 <- paletteer_d("palettesForR::Windows", n = 22)
# 最后画图
# 堆叠柱状图
library(ggpubr)
ggbarplot(sample, x = "sample", y="proportion", color="black", fill="cellType",
legend="right",
legend.title="Cell Type",
# main="Relative counts per Phylum",
font.main = c(14,"bold", "black"), font.x = c(12, "bold"),
font.y=c(12,"bold")) +
theme_bw() +
rotate_x_text() +
scale_fill_manual(values=mycols_4) + # 颜色设置
# facet_grid(~ group, scales = "free_x", space='free') +
labs(x = "Sample", y = "Relative proportion") +
theme(axis.text.x=element_text(),
axis.ticks.x=element_blank(),
axis.title = element_text(face = "bold"),
plot.title = element_text(face = "bold"),
legend.title = element_text(face = "bold"))