在使用R語言進(jìn)行繪圖的過程中,很多時(shí)候不愿意用默認(rèn)的配色(太丑)薇宠,想要自己調(diào)整顏色购对,抽空這里整理了一下修改配色的方法卢未;
主要用的是 scale_fill_xx 和?scale_color_xx 分別調(diào)整填充色和邊框顏色岂座,二者用法完全一致的态蒂;
1)scale_color_manual
最常用的調(diào)整顏色的一個(gè)函數(shù)是 scale_color_manual,可以按照自己的想法任意配色费什。
p <- ggplot(data=mtcars, aes(x=mpg, y=disp, color=factor(cyl))) + geom_point()
p
上圖使用的是默認(rèn)配色钾恢,如果想要換成自己想要的配色,就可以用 scale_color_manual 函數(shù)指定鸳址,比如:
p +?scale_color_manual(values = c("red", "yellow", "blue"))
如果想要給變量指定顏色瘩蚪,可以增加 limits 參數(shù),比如:
p +?scale_color_manual(limits=c(("6", "4", "8"), values = c("red", "yellow", "blue"))
2)scale_color_brewer
但不是任何時(shí)候我們都想指定配色方案的稿黍,畢竟自己拍腦門想到的可能會(huì)比默認(rèn)更丑疹瘦,R語言提供了一些palette,有系列配色可以供我們挑選巡球。
以上就是colorbrewer.org的提供的默認(rèn)配色方案言沐,比如:如果我們想用Set2配色,只消得如下即可辕漂;
p +?scale_color_brewer(palette = "Set2")
這里提供的配色方法還是挺美觀的呢灶,尤其是底下離散型的配色,一點(diǎn)也不突兀钉嘹,自己沒有太好想法的時(shí)候不妨采用這個(gè)。
方向也可以改泣矛,direction = 1 表示正向株扛,direction = -1 表示反向。使用方法為:
p +?scale_color_brewer(palette = "Set2", direction = -1)
3)scale_colour_gradient
很多時(shí)候徘铝,漸變色或許是個(gè)很不錯(cuò)的選擇陈辱,用以反映變量的連續(xù)變化奖年,這里可以使用scale_colour_gradient() 函數(shù),繪制雙色梯度沛贪,scale_colour_gradient2() 繪制三色梯度陋守,參數(shù)low 和high 用于控制此梯度兩端顏色,三色梯度再增加一個(gè) mid利赋。
PS. 上面的 palette 也有梯度效果的配色方案水评。
舉例說明一下:
ggplot(data=mtcars, aes(x=mpg, y=disp, color=qsec)) + geom_point() + scale_colour_gradient(low="lightgreen", high="darkgreen")
以上是三種常見的配色方案。
當(dāng)然媚送,也有其它的可以選擇中燥,比如:scale_fill_discrete 可以指定離散型配色;scale_colour_viridis_d() 和?scale_colour_viridis_c() 分別指定離散型和連續(xù)型的配色塘偎,等等疗涉,感興趣可以自行查閱說明書,不多贅述吟秩。
但是咱扣,如果除了指定顏色,還想指定特定變量的特定顏色涵防,或者指定變量以特定順序排列在橫坐標(biāo)闹伪,以及圖例填充顏色和橫坐標(biāo)排列順序不一致時(shí)如何處理。
可以看一下我寫的另一篇:
R語言 ggplot2 中指定橫坐標(biāo)變量或圖例順序(二)
就是武学,如果覺得有用的話祭往,登錄一下賬號(hào)點(diǎn)個(gè)贊支持一下,歡迎評(píng)論交流火窒!