簡體   English   中英

將圖例添加到 r 中的 geom_line() 圖形

[英]Add legend to geom_line() graph in r

我一直試圖在我的 ggplot 中添加圖例,但失敗了。 我嘗試了功能scale_colour_manual()<\/code> ,但圖例沒有出現。

ggplot()+
geom_line(data=Summary,aes(y=Y1,x= X),colour="darkblue",size=1 )+
geom_line(data=Summary,aes(y=Y2,x= X),colour="red",size=1  )

ggplot需要aes來制作圖例,在aes(...)移動colour將自動構建圖例。 然后我們可以通過scale_color_manual調整標簽顏色配對:

ggplot()+
  geom_line(data=Summary,aes(y=Y1,x= X,colour="Y1"),size=1 )+
  geom_line(data=Summary,aes(y=Y2,x= X,colour="Y2"),size=1) +
  scale_color_manual(name = "Y series", values = c("Y1" = "darkblue", "Y2" = "red"))

在此處輸入圖片說明

如前所述,必須在美學中指定顏色才能有圖例。 然而,美學中的顏色實際上只是一個標簽,然后傳遞到其他層次。 可以使用scale_color_manual設置自定義顏色,並且可以使用labs修復圖例標簽。

ggplot(data=Summary)+
  geom_line(mapping=aes(y=Y1,x= X,color="Y1"),size=1 ) +
  geom_line(mapping=aes(y=Y2,x= X,color="Y2"),size=1) +
  scale_color_manual(values = c(
    'Y1' = 'darkblue',
    'Y2' = 'red')) +
  labs(color = 'Y series')

要提供僅使用單個geom調用的更緊湊的答案:

ggplot2真的比寬(多列)更喜歡長數據(鍵值對)。 這要求您在使用tidyrreshape2類的包繪制數據之前轉換數據。 通過這種方式,您可以在aes調用中擁有一個表示顏色的變量,這將生成圖例。

對於您的數據:

library(tidyr)
library(ggplot2)

plot_data <- gather(data, variable, value, -x)

ggplot(plot_data, aes(x = x, y = value, color = variable)) +
  geom_line() +
  scale_color_manual(values = c("firebrick", "dodgerblue")) 

然后,您可以通過scale_color系列助手自定義圖例。

我有同樣的問題並嘗試了這些方法,但沒有得到回應。 你知道問題是什么嗎:

P<-ggplot(data=file11, aes(x = No.)) + 
  geom_line(aes(y = S1), colour="red",size=.6)+
  geom_line(aes(y = S2), colour="magenta", alpha=.4)+
  xlab("age")+ylab("gender")+
  theme(legend.position="bottom")+
  labs(title="group 1")+ theme_bw()+theme(plot.title=element_text(size=12,hjust=0.5,face="bold"))+
  coord_flip()+ theme(aspect.ratio = 1)+ scale_x_reverse()+ theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+ theme(legend.background = element_rect(colour = 'black', fill = 'white', linetype='solid'))+ylim(0.2,.6)+ scale_color_manual(values = c("S1" = "red",
    "S2" = "magenta"))

暫無
暫無

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

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