大家在绘制图的时候是不是有的时候老师纠结颜色的搭配。今天给大家介绍一个可以自动搭配颜色的R包RColorBrewer。R包的安装载入就不再赘述。直接进入主题。
首先我们看下它都包含了哪些颜色:
我们可以运行display.brewer.all(n=10,exact.n=FALSE)就可以看到这个包中所有的颜色搭配。
以上共有三组颜色:
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)。接下来就可以进行编程了,程序如下:
Bar_cycle<-function(name,value){
xsize=200
plot(0, 0,xlab="",ylab="",axes=FALSE,xlim=c(-xsize,xsize),ylim=c(-xsize,xsize))
for(i in 1:length(name)){
info = name[i]
percent = value[i]
k = 1:(360*percent/100)
r=xsize*(length(name)-i+1)/length(name)
#print(r)
x=r*sin(k/180*pi)
y=r*cos(k/180*pi)
text(-18,r,info,pos=2,cex=1.5,col=cols[i])
text(-9,r,paste(percent,"%"),cex=1.5,col=cols[i])
lines(x,y,col=cols[i],lwd=(length(name)-i+1)*1.2)
}
}
我们参考别人的数据信息进行图像的绘制,并且展示在我们颜色包中的颜色分布。
country<-c("老挝","菲律宾","尼泊尔","孟加拉","阿富汗","新加坡","泰国","蒙古","新西兰")
percent<-c(90,81,80,77,75,74,73,72,68,)
d<-data.frame(country,percent)
library(RColorBrewer)
cols=brewer.pal(length(country),’ Set3’)####颜色配置
png("G:/test.png",width = 2048, height = 2048)
Bar_cycle(country,percent)
dev.off()
总结,如果想绘制其他的条形图原理通用,只要能把图像上的点有公式计算就可以绘制,同样颜色的搭配也可以参考RColorBrewer包或者自己设置。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有