楼主: 1229784736
11369 0

[学习分享] R语言配色方案 — RColorBrewer包 [推广有奖]

  • 4关注
  • 18粉丝

博士生

73%

还不是VIP/贵宾

-

威望
0
论坛币
22164 个
通用积分
143.0772
学术水平
5 点
热心指数
13 点
信用等级
5 点
经验
8884 点
帖子
226
精华
0
在线时间
394 小时
注册时间
2013-5-20
最后登录
2024-4-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
转自:https://www.cnblogs.com/homewch/archive/2016/07/25/5704153.html

RColorBrewer包介绍
RColorBrewer包提供了3套很好的配色方案。用户只需要指定配色方案的名称,就可以用包中的brewer.pal()函数生成颜色。
这3套配色方案包括:
连续型Sequential(连续的):生成一系列连续渐变的颜色,通常用来标记连续型数值的大小。
离散型Diverging(离散的):生成用深色强调两端、浅色标示中部的系列颜色,可用来标记数据中的离群点。
极端型Qualitative(定性的):生成一系列彼此差异比较明显的颜色,通常用来标记分类数据。

加载RColorBrewer包
if (!require("RColorBrewer")) {
  install.packages("RColorBrewer")
  library(RColorBrewer)
}

简单的了解RColorBrewer包
查看所有颜色
display.brewer.all()

三套配色方案用法
seq连续型
共18组颜色,每组分为9个渐变颜色展示。
使用渐变色往往能让图形看起来更美观,避免单调的颜色在图形中显得突兀。实现代码如下:
# 显示seq连续型方案中各组颜色的名称和样式
display.brewer.all(type = "seq")

如果想使用YlOrRd组的第3~8种颜色,使用下面的代码实现:
# 可以使用brewer.pal(9,"<某组渐变颜色的名称>")来获取该组颜色的全部九种颜色
# 可以使用brewer.pal(9,"<某组渐变颜色的名称>")[i:j]来获取该组颜色的全部九种颜色中的某几种颜色
barplot(rep(1,6),col = brewer.pal(9,"YlOrRd")[3:8])

div离散型
共9组颜色,每组分为11个渐变颜色展示
# 显示div离散型方案中各组颜色的名称和样式
display.brewer.all(type = "div")

如果想使用BrBG组的第3~8种颜色,使用下面的代码实现:
# 可以使用brewer.pal(11,"<某组渐变颜色的名称>")来获取该组颜色的全部九种颜色
# 可以使用brewer.pal11,"<某组渐变颜色的名称>")[i:j]来获取该组颜色的全部九种颜色中的某几种颜色
barplot(rep(1,6),col = brewer.pal(11,"BrBG")[3:8])

qual极端型
共8组颜色,每组渐变颜色不尽相同
# 显示div离散型方案中各组颜色的名称和样式
display.brewer.all(type = "qual")

如果想使用BrBG组的第3~8种颜色,使用下面的代码实现:
# 可以使用brewer.pal(n,"<某组渐变颜色的名称>")来获取该组颜色的全部九种颜色
# 可以使用brewer.paln,"<某组渐变颜色的名称>")[i:j]来获取该组颜色的全部九种颜色中的某几种颜色
barplot(rep(1,6),col = brewer.pal(12,"Set3")[3:8])

注意
一般的绘图函数会使用col颜色参数,此外,一些元素还可以使用bg参数设置其背景颜色,使用border参数设置其边框颜色,其赋值和col参数一样。

应用示例
boxplot中使用
### Set the display a 1 by 1 grid
par(mfrow=c(1,1))
### Generate random data matrix
rand.data <- replicate(8,rnorm(100,100,sd=1.5))
### Draw a box plot, with each box coloured by the 'Set3' palette
boxplot(rand.data,col=brewer.pal(8,"Set3"))

### 颜色不够用怎么办?扩展颜色
### 使用colorRampPalette可以扩展颜色。
newpalette<-colorRampPalette(brewer.pal(9,"Blues"))(10)
### Generate random data matrix
rand.data <- replicate(10,rnorm(100,100,sd=1.5))
### Draw a box plot, with each box coloured by the 'newpalette' palette
boxplot(rand.data,col=newpalette)


其他绘图函数中使用
### Generate random data matrix
rand.data <- replicate(8,rnorm(100,100,sd=1.5))
### Draw plot of counts coloured by the 'Set3' pallatte
br.range <- seq(min(rand.data),max(rand.data),length.out=10)
results <- sapply(1:ncol(rand.data),function(x) hist(rand.data[,x],plot=F,br=br.range)$counts)
plot(x=br.range,ylim=range(results),type="n",ylab="Counts")
cols <- brewer.pal(8,"Set3")
lapply(1:ncol(results),function(x) lines(results[,x],col=cols[x],lwd=3))


### 实例:个人中心各模块用户点击率
### 以下是某网站个人中心内各个功能模块9月份的页面浏览量。
# 由于组别较多,这里使用条形图来展示数据,并把各功能模块流量的百分比展示在图表中。
pv<-c(29123,279750,89994,15851,61741,119477,75301,65602,75924,37943,11952,34567,11894,42780,18511,9450,1011,1533)
id<-c("我的个人中心","我的订单","退换货办理","海外订单","我的收藏","礼品卡","优惠券","账户余额","会员积分","收货地址","促销信息退订","个人资料","关联账户","账户安全","商品评论","商品提问","邀请方式","邀请记录查询")
col<-c(brewer.pal(9, "YlOrRd")[1:9],brewer.pal(9, "Blues")[1:9])
barplot(pv,col=col,horiz = TRUE,xlim=c(-30000,300000))
title(main=list("个人中心各模块用户点击率",cex=2),sub="时间:2012.9.1-2012.9.30", ylab="个人中心各模块")
text(y=seq(from=0.7,length.out=18,by=1.2),x=-15000,labels=id)
legend("topright",legend=rev(id),pch=15,col=rev(col),ncol=2)
text(labels= paste(round(10000*pv/sum(pv))/100,"%",sep=""),cex=0.7,
      y=seq(from=0.7,length.out=18,by=1.2),
      x=pv+10000)

在上面的例子中,y轴的尺度标记并未使用axis函数设置,原因在于使用axis函数设置的标记其文字方向是垂直的,这会导致y轴没有充足的空间展示尺度标记。而使用text函数设置的标记文字是水平方式排列的,它并不会占据太多y轴的空间。

paste(round(10000*pv/sum(pv))/100,“%”,sep=“”)命令会把pv数据转化为小数点后2位的百分比字符串,把pv向量c(29123,279750,89994,…)转化为字符串向量c(“2.96%”,“28.48%”,“9.16%” ,…)。

由图可知,用户在使用个人中心系统时主要使用完成购买流程的“我的订单”功能,其次是有关用户虚拟支付资源的礼品卡、优惠券,以及会员积分功能。可见个人中心承载的最核心功能仍然是帮助用户完成购物,其占比可以累积达到50%以上。退换货的pv占了9.16%,可以推测用户在日常登录个人中心后台后的退换货行为比例。

参考:http://book.2cto.com/201408/45574.html





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Brewer BREW 配色方案 R语言 REW R语言配色方案 R语言 配色 调色

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 02:52