简体   繁体   English

缺少ggplot2和geom_line的传奇

[英]Missing legend with ggplot2 and geom_line

How does one get a legend to display when plotting lines in ggplot? 如何在ggplot中绘制线条时显示图例? I've been trying all evening but have been unsuccessful. 我整个晚上都在尝试,但都没有成功。

p <- ggplot(output, aes(lambda), legend=TRUE) +
  geom_line(aes(y=train.err), colour="red", label="r") +
  geom_line(aes(y=test.err), colour="blue", label="b") +
  geom_line(aes(y=data.err), colour="green", label="g")

print(p)

Where output is a dataframe with the following structure: 其中output是具有以下结构的数据帧:

'data.frame':   2101 obs. of  4 variables:
 $ lambda   : num  3.06e-07 3.09e-07 3.12e-07 3.15e-07 3.18e-07 ...
 $ train.err: num  0.415 0.415 0.415 0.415 0.415 ...
 $ test.err : num  0.373 0.373 0.373 0.373 0.373 ...
 $ data.err : num  0.398 0.398 0.398 0.398 0.398 ...

put colour inside the aes like this: 把颜色放在这样的aes里面:

d<-data.frame(x=1:5, y1=1:5, y2=2:6)

ggplot(d, aes(x)) + 
  geom_line(aes(y=y1, colour="1")) + 
  geom_line(aes(y=y2, colour="2")) +
  scale_colour_manual(values=c("red", "blue"))

but I recommend this way: 但我推荐这种方式:

d2 <- melt(d, id="x")
ggplot(d2, aes(x, value, colour=variable)) + 
  geom_line() +
  scale_colour_manual(values=c("red", "blue"))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM