[英]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.