RColorBrewer包的学习

# RColorBrewer概述

核心函数:

  • display.brewer.all()
  • brewer.pal.info
  • display.brewer.pal(9,“Paired”)
  • brewer.pal(9,“Paired”)[3:8]:选择亚组中的颜色
library(RColorBrewer)
display.brewer.all() #显示所有调色板
# 可以看出其调色板可分为3类,到底具体是哪三类?

在这里插入图片描述
#返回画板名称,最大颜色数等,以文本的形式展示

brewer.pal.info

运行结果如下:

#下面是运行结果
         maxcolors category colorblind
BrBG            11      div       TRUE
PiYG            11      div       TRUE
PRGn            11      div       TRUE
PuOr            11      div       TRUE
RdBu            11      div       TRUE
RdGy            11      div      FALSE
RdYlBu          11      div       TRUE
RdYlGn          11      div      FALSE
Spectral        11      div      FALSE
Accent           8     qual      FALSE
Dark2            8     qual       TRUE
Paired          12     qual       TRUE
Pastel1          9     qual      FALSE
Pastel2          8     qual      FALSE
Set1             9     qual      FALSE
Set2             8     qual       TRUE
Set3            12     qual      FALSE
Blues            9      seq       TRUE
BuGn             9      seq       TRUE
BuPu             9      seq       TRUE
GnBu             9      seq       TRUE
Greens           9      seq       TRUE
Greys            9      seq       TRUE
Oranges          9      seq       TRUE
OrRd             9      seq       TRUE
PuBu             9      seq       TRUE
PuBuGn           9      seq       TRUE
PuRd             9      seq       TRUE
Purples          9      seq       TRUE
RdPu             9      seq       TRUE
Reds             9      seq       TRUE
YlGn             9      seq       TRUE
YlGnBu           9      seq       TRUE
YlOrBr           9      seq       TRUE
YlOrRd           9      seq       TRUE 

#查看画板情况

table(brewer.pal.info$category)

运行结果如下:

 div qual  seq 
   9    8   18 

综上所述,RColorBrewer共提供了3类调色板,并可以用brewer.pal()生成需要的颜色,这3类包括:

  • 连续型sequential:共18组颜色,每组9个渐变色。
  • 离散型diverging:共9组颜色,生成深色强调两端、浅色标识中部的系列颜色。
  • 定性型qualitative:共9组颜色,生成一系列彼此差异比较明显的颜色,通常用来标记分类数据。
display.brewer.all(type = "div")
display.brewer.all(type = "qual")
display.brewer.all(type = "seq")

上述三个命令运行的是分别是离散型,定性型,连续型的结果,举一个定性型的例子
在这里插入图片描述

如果只想看其中一种的结果:

display.brewer.pal(9,"Paired")

在这里插入图片描述
brewer.pal函数是最重要的函数,我们只有先从调色板取色才能用于后续的可视化。
brewer.pal(n, name)
例如,取色赋给变量mypalette

mypalette<-brewer.pal(7,"Greens")
display.brewer.pal(7,"Greens")#查看上一行代码调用的是什么颜色

当你想使用混合使用不同色板的颜色时怎么办呢?可以先取多个色板赋给不同的变量,然后组合变量的值就好了。

set1<-brewer.pal(8,"Set3")
set2<-brewer.pal(8,"Set2")
set3<-brewer.pal(8,"Set1")
mycolor<-c(set1[1],set2[2],set3[6])
mycolor

mycolor的运行结果如下:

[1] "#8DD3C7" "#FC8D62" "#FFFF33"
#可视化上述mycolor运行的结果
image(1:3,1,as.matrix(1:3),col=mycolor,xlab="my color",ylab="Y",xaxt="n",yaxt="n",bty="n")

在这里插入图片描述

从左往右依次是:“#8DD3C7” ,“#FC8D62” ,“#FFFF33”

注意:可视化单个颜色,image输入的数据必须是矩阵

image(1,1,as.matrix(1:1),col='#eb4b3a')

colorRampPalette
下面来介绍RColorBrewer的神仙函数colorRampPalette。
核心函数:
colorRampPalette(brewer.pal(9,“Set1”))(n)

library(RColorBrewer)
lp <- data.frame(city=c("全国","江苏","广东", "浙江","全球平均","中高收入","美国","英国","德国","高收入","日本"),
                 value=c(77,78,78,80,73,76,79,81,81,81,84))
lp$city <- factor(lp$city,levels = lp$city)

ggplot(lp,aes(city,value,fill=city))+
  geom_bar(stat="identity",width=0.5)+
  geom_text(aes(label=value),size=4,color="black",fontface="bold",hjust=-0.5)+
  theme_bw()+
  ylim(c(0,100))+
  labs(x="",y="")+
  theme(legend.position = "",
        axis.text = element_text(face = "bold",size=16))+
  coord_flip()+
  scale_fill_brewer(palette = "Set1")

在这里插入图片描述
上图中有11个组别,但是“Set1”只有9种颜色,怎么处理这个情况呢?
这个时候神仙函数colorRampPalette该来救场了,咱们只需要给colorRampPalette点颜色,就可以从里面任意取色了。

举例子:产生12中颜色

x <- colorRampPalette(c("royalblue","firebrick3"))(12)
scales::show_col(x)

在这里插入图片描述
举例子,产生56种颜色

y <- colorRampPalette(c("royalblue","white","firebrick3"))(56)
scales::show_col(y)

在这里插入图片描述

# 还可以让颜色更深些:
scales::show_col(colorRampPalette(c(rep("royalblue",3),"white",rep("firebrick3",3)))(56))

在这里插入图片描述

#注意:重新运行,能够产生11个颜色

ColorCount <- length(unique(lp$city))#因为11个city,所以,unique(lp$city)为11
getPalette <- colorRampPalette(brewer.pal(9,"Set1"))
scales::show_col(getPalette(ColorCount))

在这里插入图片描述
再次运行,就会有11个颜色

ggplot(lp,aes(city,value,fill=city))+
  geom_bar(stat="identity",width=0.5)+
  geom_text(aes(label=value),size=4,color="black",fontface="bold",hjust=-0.5)+
  theme_bw()+
  ylim(c(0,100))+
  labs(x="",y="")+
  theme(legend.position = "",
        axis.text = element_text(face = "bold",size=16))+
  coord_flip()+
  scale_fill_manual(values = getPalette(ColorCount))

在这里插入图片描述
注意:搞清getPalette(ColorCount)的含义,getPalette(ColorCount)也可以写成getPalette(11)

1.参考网址:https://www.jianshu.com/p/1ebeaaed6f4e
1.参考题目:【R>>RColorBrewer】神仙函数colorRampPalette

2.参考网址:https://www.jianshu.com/p/9bff33aa4d25
2.参考题目:学习RColorBrewer包

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值