圖表的色彩搭配直接決定圖表給讀者的感受和印象,漂亮的圖表自然會給文章增色不少。因此,學會自定義圖表的配色非常重要。
3種色彩搭配(獲取一組配色顏色值)的方法。
配色的本質就是得到一組搭配十分“和諧”的顏色。R中的常見顏色的表示方式有16進制顏色碼,英文代碼,RGB顏色值三種方式。常見的R色彩搭配包如RColorBrewer、ggsci、ggtech等提供現成的色彩搭配方案,可以直接拿來用。下面以RColorBrewer為例:
library(RColorBrewer)
display.brewer.all(type = "seq")
display.brewer.all(type = "qual")
這里僅輸出了兩種類型的配色,如下圖
colors1<-brewer.pal(9,"RdPu")
colors1
"#FFF7F3" "#FDE0DD" "#FCC5C0" "#FA9FB5""#F768A1" "#DD3497" "#AE017E" "#7A0177""#49006A"
colors1<-brewer.pal(9,"Dark2")
"#1B9E77" "#D95F02" "#7570B3" "#E7298A" "#66A61E" "#E6AB02" "#A6761D"
"#666666"
另一個配色神器:colortools
https://rpubs.com/gaston/colortools
使用方法:
安裝 install.packages("colortools")
library(colortools)
#色輪的生成
wheel("darkblue", num = 12)
barplot(1:12,names.arg=my1,col=my1,las=2)
#單色搭配(Monochromatic )色系的生成
sequential("red")
#類比色搭配(Analogous )與補色/對比色搭配(Complement )色輪可以方便地生成相鄰、對比等色系
analogous("darkblue")
#Complementary color scheme
complementary("steelblue")
# define some colors some_colors = setColors("#3D6DCC", 15) # pizza plot pizza(some_colors) # analagous scheme for color "#3D6DCC" analogous("#3D6DCC") # complementary scheme for color "#3D6DCC" complementary("#3D6DCC") # split complementary scheme for color "#3D6DCC" splitComp("#3D6DCC") # triadic scheme for color "#3D6DCC" triadic("#3D6DCC") # tetradic scheme for color "#3D6DCC" tetradic("#3D6DCC") # square scheme for color "#3D6DCC" square("#3D6DCC") # sequential colors for "#3D6DCC" sequential("#3D6DCC")
pals()
pals("cheer")
# color names of palette 'cheer'pizza(pals("cheer")
pizza(terrain.colors(12), bg="white")
p<-setColors(3, num=18)
hist(rnorm(100),breaks=10,col=p)
barplot(1:5,col=pals("cheer"))
#箱圖的繪制
boxplot(len~dose*supp,data=ToothGrowth,col=pals("cheer"),xlab="group",ylab="len")
繪制聚類圖
install.packages("pheatmap")
install.packages("cluster")
install.packages("ape")
library(pheatmap)
library(cluster)
library(ape)
my2<-setColors("blue",num=12)
my3<-pals("drift")
pheatmap(scale(mtcars),col=my2)
#配色可以讓我們生成熱圖中的數據更加清晰、直觀
pheatmap(scale(mtcars),col=sequential("blue",10))
pheatmap(scale(mtcars),col=my3,cutree_rows = 3)
plot(as.phylo(hclust(dist(scale(mtcars)))),tip.col=my1)
set.seed(100)
m.c<-kmeans(scale(mtcars),centers=3)
pairs(mtcars[,1:5],pch=21,bg=pals("mystery")[m.c$cluster])
#散點圖與k-mean聚類聯合分析中,不同互補色系可以更加和諧的表征不同組別的點的分布
綜上,通過改顏色工具包,可以便捷的得到我們想要的配色乃至獨特的色系。
此外,還可以用windows的取色器,mspaint
在線取色網站
http://tool.oschina.net/commons?type=3