RColorBrewer是一个R包,使用http://colorbrewer2.org/这个网站提供的颜色。我们画一个包括八个box的boxplot时,或者在x-y散点图上画六条线时,该怎样选择颜色呢?这个包就可以帮你。

=======哪些颜色系可以使用?=======
让我们先看看RColorBrewer给我们提供了哪些颜色系。
将如下代码写进test.R并运行。(运行方式:R CMD BATCH test.R)
### Load the package or install if not present
if (!require("RColorBrewer")) {
install.packages("RColorBrewer")
library(RColorBrewer)
}

### Set the display a 1 by 1 grid
par(mfrow=c(1,1))

### Show all the colour schemes available
display.brewer.all()
运行后生成的Rplots.pdf显示如下:

共有三组颜色可供使用:

  1. Sequential,按顺序渐变的。 - Light colours for low data, dark for high data
  2. Diverging,彼此之间差异变化较大的。 -  Light colours for mid-range data, low and high contrasting dark colours
  3. Qualitative,这个用于最大程度地显示不同类之间的差别。 - Colours designed to give maximum visual difference between classes

=======如何使用RColorBrewer?=======
还是举例说明。运行如下代码。
### Load the package or install if not present
if (!require("RColorBrewer")) {
install.packages("RColorBrewer")
library(RColorBrewer)
}

### 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"))
结果如下:

我们生成了8组随机数,然后作boxplot.
col=brewer.pal(8,"Set3")表示使用Set3的8种颜色。

=======其他画图函数中的使用=======

除了boxplot,其他的画图函数中也能使用RColorBrewer。
### Load the package or install if not present
if (!require("RColorBrewer")) {
install.packages("RColorBrewer")
library(RColorBrewer)
}

### Set the display a 2 by 1 grid
par(mfcol=c(2,1))

### 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))

### Draw a pie chart
table.data <- table(round(rand.data))
cols <- colorRampPalette(brewer.pal(8,"Dark2"))(length(table.data))
pie(table.data,col=cols)
结果如下:

嗯,忽视这个饼图吧,有点儿丑……

=======颜色不够用怎么办?=======
使用colorRampPalette可以扩展颜色。
if (!require("RColorBrewer")) {
install.packages("RColorBrewer")
library(RColorBrewer)
}

### Set the display a 1 by 1 grid
par(mfrow=c(1,1))

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)

运行结果如下:

colorRampPalette将Blues系列的第九个颜色进行了延伸,产生了10种渐变色。

RColorBrewer的使用的更多相关文章

  1. RColorBrewer包---R语言的配色方案

    // RColorBrewer包介绍 RColorBrewer包提供了3套很好的配色方案.用户只需要指定配色方案的名称,就可以用包中的brewer.pal()函数生成颜色.这3套配色方案包括: 连续型 ...

  2. R自动数据收集第一章概述——《List of World Heritage in Danger》

      导包     library(stringr) library(XML) library(maps) heritage_parsed <- htmlParse("http://en ...

  3. R 语言机器学习同步推进~

    教材就是传说中的机器学习和R语言--中文版,大家可以去图书馆借来看看~~~,例子都是来自书上的 首先介绍一下KNN算法,KNN还好吧,说白了就是一个算距离的公式然后以统计的方式呈现出来,以二维平面为例 ...

  4. 安装R语言扩展包diveRsity-1

    今天去了学院的运动会呢-扮熊本熊超开心-写完这篇我补上我的图么么哒 ××××××××××××文末高能预警!!!!!这个包的安装并不是本周的任务!!!!!我真是萌萌哒×××××××××××××× ××× ...

  5. 【转】GATK使用方法详解(包含bwa使用)

    一.使用GATK前须知事项: (1)对GATK的测试主要使用的是人类全基因组和外显子组的测序数据,而且全部是基于illumina数据格式,目前还没有提供其他格式文件(如Ion Torrent)或者实验 ...

  6. ggplot2包--R可视化

    1.ggplot2发展历程 ggplot2是Hadley在爱荷华州立大学博士期间的作品,也是他博士论文的主题之一,实际上ggplot2还有个前身ggplot,但后来废弃了,某种程度上这也是Hadley ...

  7. 用R进行市场调查和消费者感知分析

    // // 问题到数据 理解问题 理解客户的问题:谁是客户(某航空公司)?交流,交流,交流! 问题要具体 某航空公司: 乘客体验如何?哪方面需要提高? 类别:比较.描述.聚类,判别还是回归 需要什么样 ...

  8. R绘图基础

    一,布局 R绘图所占的区域,被分成两大部分,一是外围边距,一是绘图区域. 外围边距可使用par()函数中的oma来进行设置.比如oma=c(4,3,2,1),就是指外围边距分别为下边距:4行,左边距3 ...

  9. R----ggplot2包介绍学习

    分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无 ...

随机推荐

  1. C#设计模式:责任链模式

    设计模式是面向对象编程的基础,是用于指导程序设计.在实际项目开发过程中,并不是一味将设计模式进行套用,也不是功能设计时大量引入设计模式.应该根据具体需求和要求应用适合的设计模式.设计模式是一个老话题了 ...

  2. Angular2入门-数据绑定

    ▓▓▓▓▓▓ 大致介绍 Angular2中数据绑定的方式默认是以单向方式,数据绑定的方式可以分为: 1.属性绑定和插值表达式 组件类-> 模板 2.事件绑定:模板 -> 组件类 3.双向绑 ...

  3. jsel、tl是什么

    el 表达式是什么? * sun 制订的一种用于计算的一种规则,可以给元素赋值,也可以直接输出 el表达式:${el表达式}实验1:简单的使用el表达式获取值<%request.setAttri ...

  4. 简单的总结一下iOS面试中会遇到的问题

    1.线程是什么?进程是什么?二者有什么区别和联系?  一个程序至少有一个进程,一个进程至少有一个线程: 进程:一个程序的一次运行,在执行过程中拥有独立的内存单元,而多个线程共享一块内存 线程:线程是指 ...

  5. 速成制作rpm包

    FPM 由于很多软件在安装时需要编译,这会浪费不少的时间,为了提升部署效率,于是就想到制作rpm包.通常rpm包的制作是使用rpmbuild命令来制作,但是你需要知道它的语法,比较繁琐.这就用到了FP ...

  6. Hibernate启动非常慢问题分析

    项目中使用hibernate3,在启动项目过程中,发现加载显示数据很慢,要多几分钟才显示出数据,没有报其他异常.今天特别慢,过了好久都不加载显示数据. 排查思路有以下几个方面: 1.数据库是否开启.检 ...

  7. 《Effective C#》读书笔记-1.C# 语言习惯-1.使用属性而不是可访问的数据成员

    思维导图: 大纲: 1.使用属性而不是可访问的数据成员    属性        指定不同的访问权限        隐式属性降低了声明属性的工作量        允许将数据成员作为公共接口的一部分暴露 ...

  8. Angular2.js——数据显示

    显示数据,即属性绑定机制把数据显示到用户界面上. 在Angular中最典型的数据显示方式,就是把HTML模板中的控件绑定到Angular组件的属性. 接下来介绍几种数据显示的语法和代码片段. 使用插值 ...

  9. ASP.NET Core开发之HttpContext

    ASP.NET Core中的HttpContext开发,在ASP.NET开发中我们总是会经常用到HttpContext. 那么在ASP.NET Core中要如何使用HttpContext呢,下面就来具 ...

  10. Python常见的错误汇总

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误: [错误分析]第二个参数必须为类,否则会报TypeError,所以正确的应 ...