RColorBrewer包---R语言的配色方案
//
RColorBrewer包介绍
RColorBrewer包提供了3套很好的配色方案。用户只需要指定配色方案的名称,就可以用包中的brewer.pal()函数生成颜色。这3套配色方案包括:
连续型Sequential(连续的):生成一系列连续渐变的颜色,通常用来标记连续型数值的大小。
离散型Diverging(离散的):生成用深色强调两端、浅色标示中部的系列颜色,可用来标记数据中的离群点。
极端型Qualitative(定性的):生成一系列彼此差异比较明显的颜色,通常用来标记分类数据。
在使用这3套配色方案之前,先要加载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
本文链接:
http://www.cnblogs.com/homewch/p/5704153.html
RColorBrewer包---R语言的配色方案的更多相关文章
- DT包 -- R语言中自定义表格数据
DT 包提供了 JavaScript 库 DataTables 的一个R接口,它使得R对象(矩阵或数据框)可以在HTML页面上显示为表格. 该包的DataTables函数生成的表格提供了数据的筛选.分 ...
- R语言 包
R语言包 R语言的包是R函数,编译代码和样本数据的集合. 它们存储在R语言环境中名为"library"的目录下. 默认情况下,R语言在安装期间安装一组软件包. 随后添加更多包,当它 ...
- R语言中文社区历史文章整理(类型篇)
R语言中文社区历史文章整理(类型篇) R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterpl ...
- R语言:用简单的文本处理方法优化我们的读书体验
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...
- R语言从小木虫网页批量提取考研调剂信息
一.从URL读取并返回html树 1.1 Rcurl包 使用Rcurl包可以方便的向服务器发出请求,捕获URI,get 和 post 表单.比R socktet连接要提供更高水 ...
- 数据攻略●R语言自述
(注明:以下文章均在Linux操作系统下执行) 一.R语言简介 R语言是用于统计分析,图形表示和报告的编程语言和软件环境.R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大 ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- 【转】R语言知识体系概览
摘要:R语言的知识体系并非语法这么简单,如果都不了R的全貌,何谈学好R语言呢.本文将展示介绍R语言的知识体系结构,并告诉读者如何才能高效地学习R语言. 最近遇到很多的程序员都想转行到数据分析,于是就开 ...
- centos安装与配置R语言
Linux下安装R语言 一.编译安装 由于采用编译安装,所以需要用到gcc编译环境,在编译前check文件时还会用到libXt-devel和readline-devel两个依赖,所以在编译R语言源码时 ...
随机推荐
- MFC添加菜单事件
双击draw.rc,就能看到.
- windows一个目录下最大文件数目
对于FAT16文件系统, 可以保存的文件体积最大值是 4 GB - 1 byte (2^32 bytes - 1 byte): 卷的最大体积是4GB:每个卷上最多可以保存的文件数量是65,536个 ( ...
- 43个优秀的Swift开源项目
作为一门集百家之长的新语言,Swift拥有着苹果先天的生态优势,而其在GitHub上各种优秀的开源项目也层出不穷.本文作者@SwiftLanguage从2014年6月苹果发布Swift语言以来,便通过 ...
- 20145206邹京儒《Java程序设计》第一周学习总结
20145206 <Java程序设计>第1周学习总结 教材学习内容总结 1.三大平台:Java SE.Java EE与Java ME.Java SE是各应用平台的基础,分为四个主要的部分: ...
- #Mac技巧#如何在Mac系统上新建TXT文档,以及打开txt文稿的乱码问题如何解决
使用mac的朋友可能都有这样的疑问,mac系统下强大的文本编辑器居然不能保存常用的TXT格式? 又或者打开同事在windows上保存的TXT文件会出现如下情况: 最近Hans也被这些问题困扰着,于是便 ...
- .net学习笔记---lambda表达式(自执行方法)
http://www.cnblogs.com/jesse2013/p/happylambda.html#b034 lambda表达式 http://www.cnblogs.com/OceanEyes/ ...
- yaf框架使用(centos6.5)
安装好php环境之后 安装扩展包 $yum install php-devel /usr/bin/ 就会出现phpize工具包 下载yaf-2.2.8.gz源文件,解压后,进入源文件 phpize [ ...
- RMAN恢复目录
是否使用RMAN恢复目录(Recovery Catalog 你可能从其他人或书上听过RMAN恢复目录(也有可能是其他名字,RMAN Recovery Catalog的翻译较多较杂,以下简称恢复目录), ...
- hdu 4070 福州赛区网络赛J 贪心 ***
优先发路程最长的 #include<cstdio> #include<iostream> #include<algorithm> #include<cstri ...
- hpunix下11gRac的安装
一.检查环境 1.操作系统版本# uname -a 2.补丁包三大补丁包#swlist -l bundle|grep QPKAPPS#swlist -l bundle|grep QPKBASE#swl ...