前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言中颜色搭配以及圆形条形图展示

R语言中颜色搭配以及圆形条形图展示

作者头像
一粒沙
发布2019-07-31 09:53:27
2.5K0
发布2019-07-31 09:53:27
举报
文章被收录于专栏:R语言交流中心R语言交流中心

大家在绘制图的时候是不是有的时候老师纠结颜色的搭配。今天给大家介绍一个可以自动搭配颜色的R包RColorBrewer。R包的安装载入就不再赘述。直接进入主题。

首先我们看下它都包含了哪些颜色:

我们可以运行display.brewer.all(n=10,exact.n=FALSE)就可以看到这个包中所有的颜色搭配。

以上共有三组颜色:

  1. Sequential,按顺序渐变的,越往后颜色越深。
  2. Diverging,彼此之间差异变化较大的。
  3. Qualitative,这个用于最大程度地显示不同类之间的差别。

The sequential palettes names are (最大九种不同的颜色)

Blues BuGn BuPu GnBu Greens Greys OrangesOrRd PuBu PuBuGn PuRd Purples RdPu Reds YlGn YlGnBu YlOrBr YlOrRd

The diverging palettes are (最大11种不同颜色)

BrBG PiYG PRGn PuOr RdBu RdGy RdYlBu RdYlGnSpectral

当然也有个例如下:

Accent(8),Dark2(8),Paired(12),Pastel1(9),Pastel2(8),Set1 (9),Set2(8),Set3 (12)

如果我们需要的颜色数量大于12,那么我们需要利用R中自带的颜色向量:

terrain.colors(n),heat.colors(n),topo.colors(n),cm.colors(n),rainbow(n).

或者我们也可以R包中的颜色向量进行拼接也可以满足我们的需求。

接下来我们看下R包中的主要函数以及如何将颜色载入:

brewer.pal函数可以将颜色载入,其参数分布也很简单:brewer.pal(n,name)其中n指的颜色的个数,name指的颜色的名称(也就是上面三组中的某一个名称)最我们利用它进行实战画图。我们今天趁此机会跟大家介绍一种自编程的绘图叫圆形条形图。首先我们来看下实现原理:首先我们要知道圆上的点的计算公式x=r*cos(a);y=r*sin(a)。接下来就可以进行编程了,程序如下:

代码语言:javascript
复制
Bar_cycle<-function(name,value){
代码语言:javascript
复制
    xsize=200
代码语言:javascript
复制
   plot(0, 0,xlab="",ylab="",axes=FALSE,xlim=c(-xsize,xsize),ylim=c(-xsize,xsize))
代码语言:javascript
复制
     for(i in 1:length(name)){
代码语言:javascript
复制
         info = name[i]
代码语言:javascript
复制
         percent = value[i]
代码语言:javascript
复制
         k = 1:(360*percent/100)
代码语言:javascript
复制
        r=xsize*(length(name)-i+1)/length(name)
代码语言:javascript
复制
         #print(r)
代码语言:javascript
复制
         x=r*sin(k/180*pi)
代码语言:javascript
复制
         y=r*cos(k/180*pi)
代码语言:javascript
复制
         text(-18,r,info,pos=2,cex=1.5,col=cols[i])
代码语言:javascript
复制
         text(-9,r,paste(percent,"%"),cex=1.5,col=cols[i])
代码语言:javascript
复制
         lines(x,y,col=cols[i],lwd=(length(name)-i+1)*1.2)
代码语言:javascript
复制
     }
代码语言:javascript
复制
 }
代码语言:javascript
复制
我们参考别人的数据信息进行图像的绘制,并且展示在我们颜色包中的颜色分布。
代码语言:javascript
复制
country<-c("老挝","菲律宾","尼泊尔","孟加拉","阿富汗","新加坡","泰国","蒙古","新西兰")
代码语言:javascript
复制
percent<-c(90,81,80,77,75,74,73,72,68,)
代码语言:javascript
复制
d<-data.frame(country,percent)
代码语言:javascript
复制
library(RColorBrewer)
代码语言:javascript
复制
cols=brewer.pal(length(country),’ Set3’)####颜色配置
代码语言:javascript
复制
png("G:/test.png",width = 2048, height = 2048)
代码语言:javascript
复制
Bar_cycle(country,percent)
代码语言:javascript
复制
dev.off()

总结,如果想绘制其他的条形图原理通用,只要能把图像上的点有公式计算就可以绘制,同样颜色的搭配也可以参考RColorBrewer包或者自己设置。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档