簡體   English   中英

無法在ggplot2中為多個密度圖制作圖例

[英]Cannot make legend for several density plots in ggplot2

我正在使用ggplot2具有圖例的一些密度圖,但無法將圖例添加到最終結果中。

m <- ggplot(chickwts, aes(x = weight))
m + geom_density(kernel = "gaussian", adjust = .3, colour="green", size=1)+
  geom_density(kernel = "gaussian", adjust = 1, colour="red", size=1)+
  geom_density(kernel = "gaussian",adjust = 5, colour="blue", size=1)+
  geom_density(kernel = "gaussian",adjust = 10, colour="yellow", size=1)+
  geom_density(kernel = "gaussian",adjust = 20, colour="orange", size=1)

我使用了在這里找到的幾種語法,但是它們都不起作用。 謝謝。

ggplot2的圖例基於美學或傳遞給aes()函數的參數。 通常,您將分配一個因素作為顏色美感,這將自動創建顏色圖例。 但是, chickwts數據集中沒有內置的密度分組因子,因此您必須組成自己的比例和標簽。

您可以定義與在scale_colour_manual()創建的自定義色階相對應的命名顏色美學,而不是直接在geom_density()定義顏色,如下所示:

m <- ggplot(chickwts, aes(x = weight))
m + geom_density(kernel = "gaussian", adjust = .3, aes(colour=".3"), size=1)+
  geom_density(kernel = "gaussian", adjust = 1, aes(colour="1"), size=1)+
  geom_density(kernel = "gaussian",adjust = 5, aes(colour="5"), size=1)+
  geom_density(kernel = "gaussian",adjust = 10, aes(colour="10"), size=1)+
  geom_density(kernel = "gaussian",adjust = 20, aes(colour="20"), size=1) + 
  scale_colour_manual(values=c(".3"="green", "1"="red", "5"="blue", "10"="yellow", "20"="orange"), name="Densities")

密度圖示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM