日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言调色板5个参数,R语言中的颜色以及色板

發布時間:2023/12/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言调色板5个参数,R语言中的颜色以及色板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可視化數據時,色彩往往是最欠考慮的因素。的確,在一個圖中,數據的選擇和圖表類型的確定才是最重要,最需要確定的因素。但是,適當的選擇顏色不僅僅能使數據圖的閱讀者賞心悅目,而且有助于圖中數據關系的呈現,使得整個圖表更有說服力。這篇文章將簡單介紹R語言中的色彩和調色板相關package和函數。

1.R語言中的默認顏色

R中可以通過定義col參數自定義顏色。有以下四種方法進行設置,是等價的:

數字:(如1代表當前palette的第1種顏色,2代表當前palette的第2種顏色等);

顏色名:(如”red”,”blue”)、可以使用colors()獲得所有顏色名稱列表

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

十六進制顏色代碼:#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

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

b

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

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

b2p2

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"

總結

以上是生活随笔為你收集整理的c语言调色板5个参数,R语言中的颜色以及色板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。