當您將color="darkgrey"
放在aes
之外時,ggplot會將其字面意思表示該行應爲彩色"darkgrey"
。但是當你把color="darkgrey"
放在aes
的內部時,ggplot就意味着你想把顏色映射到一個變量上。在這種情況下,變量只有一個值:「darkgrey」。但這不是顏色"darkgrey"
。這只是一個字符串。你可以稱它爲任何東西。顏色ggplot選擇將基於默認調色板。當您想爲該變量的不同級別使用不同的顏色時,將顏色映射到變量。
例如,看下面的例子中會發生什麼。顏色是從ggplot的默認調色板中選擇的,並且在每次調用geom_line
時完全獨立於我們用於colour
的名稱。你會得到相同的三種顏色,當你有任何的色彩美學認爲,發生在三個不同的獨特的價值觀:
library(ggplot2)
theme_set(theme_classic())
ggplot(mtcars) +
geom_line(aes(mpg, wt, colour="green")) +
geom_line(aes(mpg, wt - 1, colour="blue")) +
geom_line(aes(mpg, wt + 1, colour="star trek"))

但現在我們把顏色外aes
所以他們從字面上,我們發表評論在第三行,因爲如果我們不使用有效的顏色會導致錯誤。
ggplot(mtcars) +
geom_line(aes(mpg, wt), colour="green") +
geom_line(aes(mpg, wt - 1), colour="blue") #+
#geom_line(aes(mpg, wt + 1), colour="star trek")

注意,如果我們繪製顏色的mtcars
(一個具有三個獨特的水平),我們得到了相同的三種顏色作爲第一個例子,但現在它們被映射的實際列該數據的實際特徵:
ggplot(mtcars) +
geom_line(aes(mpg, wt, colour=factor(cyl)))

最後,如果我們想要什麼設置這些顏色映射到不同的值:
ggplot(mtcars) +
geom_line(aes(mpg, wt, colour=factor(cyl))) +
scale_colour_manual(values=c("purple", hcl(150,100,80), rgb(0.9,0.5,0.3)))

OMG感謝你這麼多你的迴應!很有幫助! – Alice