温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

R语言中的颜色及色板怎么设置

发布时间:2022-01-20 10:50:21 来源:亿速云 阅读:1410 作者:iii 栏目:开发技术

这篇文章主要介绍“R语言中的颜色及色板怎么设置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R语言中的颜色及色板怎么设置”文章能帮助大家解决问题。

可视化数据时,色彩往往是最欠考虑的因素。的确,在一个图中,数据的选择和图表类型的确定才是最重要,最需要确定的因素。但是,适当的选择颜色不仅仅能使数据图的阅读者赏心悦目,而且有助于图中数据关系的呈现,使得整个图表更有说服力。

1.R语言中的默认颜色

R中可以通过定义col参数自定义颜色。有以下四种方法进行设置,是等价的:

  1. 数字:(如1代表当前palette的第1种颜色,2代表当前palette的第2种颜色等); 

  2. 颜色名:(如”red”,”blue”)、可以使用colors()获得所有颜色名称列表

  3. RGB:使用rgb()函数得到的返回值 rgb(1, 0, 0)

  4. 十六进制颜色代码:#FF0000

barplot(1:4, col = c(2, "red", rgb(1, 0, 0), "#FF0000"))

人们不禁要问,不同数字代表的都是什么颜色?

通过palette()函数,可以看到在当前调色板下,第一种颜色是黑色,第二种颜色是红色。这个调色板共有8种颜色,当使用颜色数大于8时,会从头开始。

palette()## [1] "black"   "red"     "green3"  "blue"    "cyan"    "magenta" "yellow" 
## [8] "gray"


调色板当然是可以改变的,比如用系统中的彩虹调色板。此时,第二位可就不是红色了。

palette(rainbow(12))
barplot(1:4, col = c(2, "red", rgb(1, 0, 0), "#FF0000"))

通过再次将palette设置为”default”,可以得到默认调色板。

palette("default")

2.R预置色彩系统的色板

其实在R语言的色彩系统中,有两大类颜色系统,一类是预设的调色盘,通过调色盘,你可以获取任意数量的色彩组合。

R语言的预设调色板一共有五个:

rainbow
heat.colors
terrain.colors
topo.colors
cm.colors

这五个调色板就像是一个大染缸一样,排列着无数的色彩组合。取色也很简单,就是使用预设色盘名称+色彩数据即可:

rainbow(10)
 [1] "#FF0000FF" "#FF9900FF" "#CCFF00FF" "#33FF00FF" "#00FF66FF" "#00FFFFFF"
 [7] "#0066FFFF" "#3300FFFF" "#CC00FFFF" "#FF0099FF"

以上既是通过名称+数量的方式获取的一组10个颜色,同样我们可以通过scales包中show_col函数查看具体的颜色效果:

library(scales)
show_col(rainbow(10),labels=T) #labels控制是否显示HEX格式的色值信息.

接下来我用一个版面矩阵将五个色盘颜色全部显示出来:

par(mfrow=c(1,5),mar=c(0.5,0.5,2,0.5),xaxs="i",yaxs="i")
n<-1000
barplot(rep(1,times=n),col=rainbow(n),border=rainbow(n),horiz=T,axes=F,main="Rainbow Color")
barplot(rep(1,times=n),col=heat.colors(n),border=heat.colors(n),horiz=T,axes=F,main="Heat.Colors")
barplot(rep(1,times=n),col=terrain.colors(n),border=terrain.colors(n),horiz=T,axes=F,main="Terrain.Colors")
barplot(rep(1,times=n),col=topo.colors(n),border=topo.colors(n),horiz=T,axes=F,main="Topo.Colors")
barplot(rep(1,times=n),col=cm.colors(n),border=cm.colors(n),horiz=T,axes=F,main="Cm.Colors")

运行以上代码之后,你会看到绘图面板上出现的五个色板色彩过渡效果,第一个rainbow是运用最为频繁的的色板,也是我们所熟知的彩虹七色,其余四个是截取rainbow色斑的某一段暖色系、冷色系或者单色做的渐变过渡。

五种颜色调用方法非常简单,名称+数量就可以。而且你也可以通过文本函数将不同色盘中截取的颜色相互混合使用。

dev.off()#关闭上次的绘图面板
par(mfrow=c(2,1),mar=c(0.5,0.5,2,0.5),xaxs="i",yaxs="i")
a<-heat.colors(10)
b<-topo.colors(10)
barplot(rep(1,times=10),col=b,border=b,main="Topo.Colors10",axes=F)
barplot(rep(1,times=10),col=a,border=a,main="Heat.Colors10",axes=F)
dev.off()
c<-c(a[c(1,3,5,7,9)],b[c(2,4,6,8,10)])
barplot(rep(1,times=10),col=c,border=c,axes=F,main="topo&heat 10")

3.产生渐变颜色colorRamp()和colorRampPalette():

colorRamp()和colorRampPalette()都可用于建立颜色板。想象一下你现在有一个色板,色板上有红色,蓝色,和白色,你就可以用colorRamp()和colorRampPalette()基于这三个颜色就行调色,两者的不同在于,colorRamp() 可以指定一个小数,返回一个指定的颜色值,需要用rgb方法转换;

colorRampPalette()返回指定数量的颜色值,两个方法可以达到相同的效果:

par(mfrow = c(1, 2))
b2p1 <- colorRampPalette(c("red", "white","blue"))
b2p2 <- colorRamp(c("red", "white","blue"))

barplot(rep(1, 12), axes=F, col = b2p1(12), border = b2p1(12), main = "colorRampPalette")

rgb( b2p2(seq(0, 1, length = 12)), max = 255)

barplot(rep(1, 12), axes=F,col = rgb( b2p2(seq(0, 1, length = 12)), max = 255), border = rgb( b2p2(seq(0, 1, length = 12)), max = 255), main = "colorRamp")

4.RColorBrewer包色板

虽然说RColorBrewer包中实际用到的就只有brewer.pal()函数,但是包中的两个优点使得其非常实用。一是,包中颜色板被划分为序列型(sequential)、离散型(diverging)、分类型(qualitative)这三种基本能满足统计作图需要的类型;二是,颜色都比较协调。更多指引见其官网ColorBrewer。

require("RColorBrewer")
display.brewer.all()

取出对应色板颜色,以及数量:

brewer.pal(9, "Purples")
[1] "#FCFBFD" "#EFEDF5" "#DADAEB" "#BCBDDC" "#9E9AC8" "#807DBA" "#6A51A3" "#54278F" "#3F007D"

关于“R语言中的颜色及色板怎么设置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI