如何使用R語言畫出漂亮的圖,顏色很重要,既要協(xié)調(diào),又有有一定的分辨力。
1. 彩虹色
可以拿到任意多個(gè)顏色,當(dāng)然顏色越多,分辨力越低。
barplot(rep(1,8), col=rainbow(8),border=NA)
rainbow(8)
[1] "#FF0000FF" "#FFBF00FF" "#80FF00FF" "#00FF40FF" "#00FFFFFF" "#0040FFFF"
[7] "#8000FFFF" "#FF00BFFF"

barplot(rep(1,20), col=rainbow(20),border=NA) #分辨力降低

2. 其他預(yù)置漸變色
par(mfrow=c(4,1), mar=c(0,2,2,0) )
n=10
#heat.colors()從紅色漸變到黃色,再變到白色
barplot(rep(1,n), col= heat.colors(n), border=NA, main="heat.colors")?
#terrain.colors() 從綠色漸變到黃色,再到棕色,最后到白色?
barplot(rep(1,n),col=terrain.colors(n), border=NA, main="terrain.colors")
#topo.colors() 從藍(lán)色漸變到青色,再到黃色,最后到棕色?
barplot(rep(1,n),col=topo.colors(n), border=NA, main="topo.colors")
#cm.colors() 從青色漸變到白色,再到粉紅色
barplot(rep(1,n),col=cm.colors(n), border=NA, main="cm.colors")

3.使用預(yù)制配色集合 Set2/Dark2,插值生成任意個(gè)顏色
(1)
library(RColorBrewer)
display.brewer.all() #顯示全部顏色集合

# 挑選某一個(gè)集合
#barplot(rep(1,8),col=brewer.pal(8,"Dark2")[1:8]) #基礎(chǔ)語法
myColors=brewer.pal(8,"Dark2")[1:8] #Dark2主題有8種顏色
par(mfrow=c(4,1), mar=c(0,2,2,0) )
barplot(rep(1,8),col= myColors, main="Dark2"? )
#
n=15 #nrow(df);
barplot(rep(1, n ),col= colorRampPalette(colors = myColors)( n ),main="Default:linear") #則由8種生成15種顏色
barplot(rep(1, n ),col= colorRampPalette(colors = myColors, interpolate ="linear")( n ),main="linear" ) #插值方式
barplot(rep(1, n ),col= colorRampPalette(colors = myColors, interpolate ="spline")( n ),main="spline") #插值方式
colSet2 # 獲取顏色16進(jìn)制表示
# [1] "#1B9E77" "#D95F02" "#7570B3" "#E7298A" "#66A61E" "#E6AB02" "#A6761D" "#666666"

解釋:
n=5;barplot(rep(1,n), col=colorRampPalette(colors = c('red', 'white'))( n ))
colorRampPalette 函數(shù)可以混合任意兩種及更多顏色,通過插值,生成更多色彩。
(2) 目測其他幾個(gè)預(yù)制顏色集合
n=8;barplot(rep(1,n),col= brewer.pal(n,"Set2")[1:n] ) # set2 共8種顏色

ref:
biomooc.com