ggplot2是由Hadley Wickham創建的一個十分強大的可視化R包。在使用R作圖時,如何使用ggplot2來調整圖像中的顏色呢?下面跟著我們一起學習ggplot2的顏色修改函數,制作出更加絢麗多彩的圖片。
1、簡單顏色分配
在ggplot2中,對于線和點的顏色調整可以直接改變colour參數,如設置colour=“red”等。而對于一些作為對象填充的顏色,如直方圖中條形的顏色,則可以通過改變fill參數來控制,如fill=“red”。
#構建數據
df <- read.table(header=TRUE, data='type number
A 3
B 4.5
C 2.8')
# 默認:深色條形
ggplot(df, aes(x=type, y=number)) + geom_bar(stat="identity")
# 紅色外框線的條形
ggplot(df, aes(x=type, y=number)) + geom_bar(stat="identity", colour="#FF9999")
# 紅色填充,黑色外框
ggplot(df, aes(x=type, y=number)) + geom_bar(stat="identity", fill="#FF9999", colour="black")
![]() |
![]() |
2、將變量值映射為顏色
除了對顏色進行全局性的修改,也可以將變量值映射為顏色,就是用顏色來表示某個變量,需要將它置于aes() 命令之中。同時在對圖形屬性進行映射之后,使用標尺控制這些屬性的顯示方式,其顯示規律如下
ggplot2的scale系列函數一般使用三個單詞用_連接,如scale_fill_gradient和 scale_color_continuous。
第一個都是scale。
第二個是color和fill等可更改的顏色參數,對應分組使用的顏色函數即可。比如柱狀圖,fill是柱子的填充顏色,這時就使用scale_fill系列函數來更改顏色。點圖使用color分組,則使用scale_color_系列函數來更改顏色。
第三個單詞的不同,可分為以下兩種情況:
1)離散型:在顏色變量是離散變量的時候使用,比如分類時每一類對應一種顏色。
manual 直接指定分組使用的顏色
hue 通過改變色相(hue)飽和度(chroma)亮度(luminosity)來調整顏色
brewer 使用ColorBrewer的顏色
grey 使用不同程度的灰色
library(ggplot2) ##載入ggplot2包
data(diamonds) ##測試數據
diamond <- diamonds[sample(nrow(diamonds), 1000), ] ##選取數據的前1000行
p <- ggplot(diamond, aes(cut, price, fill = cut)) + geom_boxplot() ## 使用默認配色方案 scale_fill_hue()
#直接指定顏色
p + scale_fill_manual(values=c("red", "blue", "green", "yellow","orange"))
#或者直接指定對應分組顏色
p + scale_fill_manual(values=c("Fair" = "red", "Good" = "blue", "Very Good" = "green" , Premium = "orange", Ideal = "yellow"))
##效果如下,此時分組顏色對應我們設置的一樣
brewer 使用ColorBrewer的顏色
##調用包ColorBrewer 中的配色方案,要想了解所有的調色板,可以使用RColorBrewer::display.brewer.all()查看。以下是調色板:
p + scale_fill_brewer(palette = "Set1")
##效果如下,選擇Set1的配色方案
grey 使用不同程度的灰色
#通過start end 兩個參數指定,0為黑,1為白,都在0-1范圍內
p + scale_fill_grey() #左圖
#設定灰度范圍
p + scale_fill_grey(start=1, end=0) # 右圖
![]() |
![]() |
2)連續型:顏色變量是連續變量的時候使用,比如0-100的數,數值越大顏色越深。
gradient 創建漸變色
distiller 使用ColorBrewer的顏色
identity 使用color變量對應的顏色,對離散型和連續型都有效
#構建數據集
df <- data.frame(
x = runif(100),
y = runif(100),
z1 = rnorm(100))
p <- ggplot(df, aes(x, y)) + geom_point(aes(colour = z1))
gradient 創建漸變色#參數設定節點顏色
p + scale_color_gradient(low = "white", high = "black")
#設置中間過渡色
p + scale_color_gradient2(low = "red", mid = "white", high = "blue")
#使用R預設調色板
p + scale_color_gradientn(colours =rainbow(10))
![]() |
![]() |
![]() |
![]() |
distiller 使用ColorBrewer的顏色
#將ColorBrewer的顏色應用到連續變量上
p + scale_color_distiller(palette = "Spectral")
p + scale_color_distiller(palette = "Greens")
![]() |
![]() |
總結:以上就是ggplot2繪圖中顏色設置的各種參數及用法,幫助我們輕松繪制出色彩斑斕的圖片。