簡體   English   中英

ggplot2-結合了geom_point和geom_line的圖例

[英]ggplot2 - legend for combined geom_point and geom_line

給了我一個數據集,我想將一個變量繪制為點,將其他變量繪制為具有不同線型的線(每個變量具有不同的顏色)。

 a <- c(10:20)
 df <- data.frame(a=a,b=a,c=a*a/10,d=10*sqrt(a))
 df_melt <- reshape2::melt(df,id.vars='a')

 ggplot(df_melt, aes(x=a,y=value,colour=variable,linetype=variable,shape=variable))+
           geom_line(data=subset(df_melt,variable == "b"))+
           geom_line(data=subset(df_melt,variable == "c"))+
           geom_point(data=subset(df_melt,variable == "d"))

現在產生通緝的情節:

在此處輸入圖片說明

然而,圖例現在顯示所有三個變量的線型和形狀,盡管並非所有變量實際都顯示它們。

如何相應地刪除線型或形狀以使圖例與繪圖顯示一致?

通常,如果您發現自己添加了具有不同子集的多個geom_line()geom_point()層,通常會有更好的方法直接涉及對變量進行操作。 在這里,我通過在scale_linetype_manual()點或線時分別添加它們的NA值(在scale_linetype_manual()scale_shape_manual() )來實現。 (使用的形狀/線型與上面使用的形狀/線型不完全相同,但是調整起來很容易。)

ggplot(df_melt, aes(x=a,y=value,colour=variable,
                    linetype=variable,shape=variable))+
    geom_point()+
    geom_line()+
    scale_linetype_manual(values=c(1,2,NA))+
    scale_shape_manual(values=c(NA,NA,2))

暫無
暫無

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

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