簡體   English   中英

將圖例添加到ggplot2

[英]Adding a legend to a ggplot2

我嘗試在我的ggplot2圖中添加一個圖例,但它沒有用完。 show.legend命令也不會改變任何東西

在這個問題的答案之后( 在ggplot中添加手動圖例 )我嘗試了scal_colour_manueal,但它沒有成功

library(ggplot2)
library(data.table)

color1 = "#D30F4B"
color2 = "#66B512"

data= data.frame(Week = rep(1:5,2), kpi = rep(c("Var1", "Var2"), each=5), value = runif(10), value2 = c(runif(5), rep(NA,5))  )

ggp <- ggplot( data = data, aes( x = Week, y = value, group = kpi) ) +
  geom_line(color=color1, show.legend = T) 

ggp <- ggp +
geom_line( mapping = aes( x = Week, y = value2, group = kpi), colour = color2 , show.legend = T) 

ggp <- ggp +  
  facet_wrap( kpi ~ . , ncol = 1) +
  scale_colour_manual(name="Legend", values=c(color1, color2))

plot(ggp)

如何在此圖中添加圖例?

如果您希望它們依賴於數據框的某個變量,則不應在aes之外設置顏色。

library(ggplot2)
library(data.table)

color1 = "#D30F4B"
color2 = "#66B512"

data= data.frame(Week = rep(1:5,2), kpi = rep(c("Var1", "Var2"), each=5), value = runif(10), value2 = c(runif(5), rep(NA,5))  )

ggp <- ggplot( data = data, aes( x = Week, y = value, col= kpi) ) +
  geom_line(show.legend = T) 

ggp <- ggp +
geom_line( mapping = aes( x = Week, y = value2, col= kpi), show.legend = T) 

ggp <- ggp +  
  facet_wrap( kpi ~ . , ncol = 1) +
  scale_colour_manual(name="Legend", values=c(color1, color2))

plot(ggp)

情節

另一個暗示:當數據“整潔”時,ggplot效果最好(參見例如Hadley Wickham的R for Data Science )。 然后解決方案看起來像這樣( gather調用重新整形/整理數據,以便它更適合ggplot):

library(tidyverse)
library(ggplot2)
library(data.table)

color1 = "#D30F4B"
color2 = "#66B512"

data= data.frame(Week = rep(1:5,2), kpi = rep(c("Var1", "Var2"), each=5), value = runif(10), value2 = c(runif(5), rep(NA,5))  )

data <- gather(data, key = value_name, value = value, -Week, -kpi) ## tidy the data with "gahter"

ggplot(data, aes(x = Week, y = value, colour = value_name, group = value_name)) +
    geom_line() +
    facet_wrap(kpi ~ ., ncol = 1) +
    scale_colour_manual(name="Legend", values=c(color1, color2))

我們可以有兩個geom_line各自的顏色,然后用facet_wrap

library(ggplot2)

ggplot(data) + 
  aes(x = Week, y = value2, group = kpi, colour = color2) +
  geom_line() +
  geom_line(aes( x = Week, y = value, group = kpi, color = color1)) + 
  facet_wrap( kpi ~ . , ncol = 1) +
  scale_colour_manual(name="Legend", values=c(color1, color2))

在此輸入圖像描述

暫無
暫無

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

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