4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
【T】今日R--RColorBrewer(颜色包)的使用_铁汉1990_新浪博客
来自 : 新浪博客 发布时间:2021-03-25

该博文后续更新见http://qinqianshan.com/colors-in-r/

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

=======哪些颜色系可以使用?=======

让我们先看看RColorBrewer给我们提供了哪些颜色系。

将如下代码写进test.R并运行。(运行方式:RCMD 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))

#比如mfrow(2,3)就是指将绘图区域分成2行3列,并按行的顺序依次绘图填充;

### Show all the colour schemes available

display.brewer.all()

运行后生成的Rplots.pdf显示如下:

\"【T】今日R--RColorBrewer(颜色包)的使用\"

共有三组颜色可供使用:

Sequential,按顺序渐变的。- Light colours for low data, dark for high data

Diverging,彼此之间差异变化较大的。- Light colours for mid-range data, low andhigh contrasting dark colours

Qualitative,这个用于最大程度地显示不同类之间的差别。- Colours designed to give maximum visual difference betweenclasses

=======如何使用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\"))

结果如下:

\"【T】今日R--RColorBrewer(颜色包)的使用\"

我们生成了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)

结果如下:

\"【T】今日R--RColorBrewer(颜色包)的使用\"

=======颜色不够用怎么办?=======

使用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)

运行结果如下:

\"【T】今日R--RColorBrewer(颜色包)的使用\"

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

Ps:

两种方式

cols -colorRampPalette(brewer.pal(9,\"Blues\"))(10)

圆括号指定有几个点或线用画颜色

cols - brewer.pal(8,\"Set3\")[X]

[]指定调用其中的第几个颜色

参考资料:

87%完美的日子http://blog.sina.com.cn/s/blog_681aaa5501016tk4.html

本文链接: http://brewer.immuno-online.com/view-742486.html

发布于 : 2021-03-25 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616