溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板

發(fā)布時(shí)間:2021-12-20 16:12:07 來源:億速云 閱讀:210 作者:小新 欄目:大數(shù)據(jù)

這篇文章給大家分享的是有關(guān)r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

內(nèi)容主要包含兩部分:

  • R預(yù)置色彩系統(tǒng)的色板

  • R語言自定義顏色調(diào)用

其實(shí)在R語言的色彩系統(tǒng)中,有兩大類顏色系統(tǒng),一類是預(yù)設(shè)的調(diào)色盤,通過調(diào)色盤,你可以獲取任意數(shù)量的色彩組合。

R語言的預(yù)設(shè)調(diào)色板一共有五個(gè):

rainbow

heat.colors

terrain.colors

topo.colors

cm.colors

這五個(gè)調(diào)色板就像是一個(gè)大染缸一樣,排列著無數(shù)的色彩組合。取色也很簡單,就是使用預(yù)設(shè)色盤名稱+色彩數(shù)據(jù)即可:

rainbow(10)

 [1] "#FF0000FF" "#FF9900FF" "#CCFF00FF" "#33FF00FF" "#00FF66FF" "#00FFFFFF"

 [7] "#0066FFFF" "#3300FFFF" "#CC00FFFF" "#FF0099FF"

以上既是通過名稱+數(shù)量的方式獲取的一組10個(gè)顏色,同樣我們可以通過scales包中show_col函數(shù)查看具體的顏色效果:

library(scales)

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

r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板

接下來我用一個(gè)版面矩陣將五個(gè)色盤顏色全部顯示出來:

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

r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板

運(yùn)行以上代碼之后,你會(huì)看到繪圖面板上出現(xiàn)的五個(gè)色板色彩過渡效果,第一個(gè)rainbow是運(yùn)用最為頻繁的的色板,也是我們所熟知的彩虹七色,其余四個(gè)是截取rainbow色斑的某一段暖色系、冷色系或者單色做的漸變過渡。

五種顏色調(diào)用方法非常簡單,名稱+數(shù)量就可以。而且你也可以通過文本函數(shù)將不同色盤中截取的顏色相互混合使用。

dev.off()#關(guān)閉上次的繪圖面板

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)

r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板

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");box()

r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板

以上通過將兩個(gè)色板提取出來的顏色進(jìn)行組合,創(chuàng)造出了新的色彩組合。

R語言自定義顏色調(diào)用

接下來介紹R語言的第二大色彩系統(tǒng),自定義顏色。

R語言系統(tǒng)中內(nèi)置了657中帶有自定義名稱的顏色(就是我們平時(shí)所熟知的blue、red、grey等)。

通過colors()函數(shù)可以查看這657種顏色的色值及名稱類別信息:

head(colors(),10)

 [1] "white"         "aliceblue"     "antiquewhite"  "antiquewhite1"

 [5] "antiquewhite2" "antiquewhite3" "antiquewhite4" "aquamarine"   

 [9] "aquamarine1"   "aquamarine2"  

library(plyr)

count(cl)

r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板

count函數(shù)列出了所有657中顏色名稱。

使用show_col函數(shù)可以查看所有657中顏色的圖形顯示效果

show_col(cl,labels=F)#因?yàn)轭伾珨?shù)量太多,使用labels=F參數(shù)略去顏色色值信息。

r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板

使用colorRampPalette函數(shù)可以自由調(diào)用任何一種自定義顏色。

colorRamp(colors, bias = 1, space = c("rgb", "Lab"), interpolate = c("linear", "spline"))

colorRampPalette(colors, ...)

color函數(shù)的介紹如上,具體的參數(shù)解釋可以通過?colorRampPalette查看他的官方文檔,這里我們直接取色。

par(mfrow=c(1,4),mar=c(0.5,0.5,2,0.5),xaxs="i", yaxs="i")

n <- 1000

mycolors <- colorRampPalette(c("red", "green"))(n)

barplot(rep(1,times=n),col=mycolors,border=mycolors,horiz=T,axes=FALSE)

mycolors <- colorRampPalette(c("blue", "yellow", "orange"))(n)

barplot(rep(1,times=n),col=mycolors,border=mycolors,horiz=T,axes=FALSE)

mycolors <- colorRampPalette(c( "white", "gold", "yellow", "brown"), bias=1.2)(n)

barplot(rep(1,times=n),col=mycolors,border=mycolors,horiz=T,axes=FALSE)

mycolors <- colorRampPalette(c("red","gold", "yellow", "grey","orange"), bias=1.2)(n)

barplot(rep(1,times=n),col=mycolors,border=mycolors,horiz=T,axes=FALSE)

dev.off()

r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板

除了這兩大色彩系統(tǒng)系統(tǒng)之外,R語言也支持直接以色值(HEX)形式輸入的顏色,只需使用c()函數(shù)生成色值組成的字符向量,R語言就可自動(dòng)識(shí)別。

還有一些特殊用途的grey函數(shù),hsv函數(shù)等等可以通過設(shè)定灰度或者色調(diào)、飽和度、亮度等等方式獲取顏色使用,這些由于過于繁瑣,這里就略去了,甘感興趣的小盆友可以自己探索。

當(dāng)然,這里還沒有講解到那些已經(jīng)做得很成熟的主題配色包,比如ggthemes(專為ggplot2開發(fā)的主題包)、RColorbrewer(里面存放著大量高質(zhì)量的配色方案)、以及ggtech(是一個(gè)科技主題的配色包,主要供ggplot函數(shù)調(diào)用)。

通過scales包中的brewer.col,我們可以提取出以上各包的配色主題,來用于我們的可視化圖表中,不光是ggplot繪圖系統(tǒng),即便是在基礎(chǔ)繪圖系統(tǒng)(base::plot)中也是可以調(diào)用這些色彩方案的

感謝各位的閱讀!關(guān)于“r語言中如何實(shí)現(xiàn)R預(yù)設(shè)配色系統(tǒng)及自定義色板”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI