R 向ggplot对象添加图例

R 向ggplot对象添加图例,r,ggplot2,R,Ggplot2,我正试图通过R中的下一个代码将图例添加到图形中 limits<-ggplot(bands3, aes(x=H,y=C_min))+geom_line(color="red1")+ geom_line(data=bands3, aes(x=H,y=C_max), color="red1")+ geom_line(data=bands4[-1000,], aes(x=H,y=C_min),color="green1", size=0.5)+ geom_line(data=band

我正试图通过R中的下一个代码将图例添加到图形中

limits<-ggplot(bands3, aes(x=H,y=C_min))+geom_line(color="red1")+
  geom_line(data=bands3, aes(x=H,y=C_max), color="red1")+
  geom_line(data=bands4[-1000,], aes(x=H,y=C_min),color="green1", size=0.5)+ 
  geom_line(data=bands4[-1000,], aes(x=H,y=C_max),color="green1", size=0.5)+
  geom_line(data=bands5, aes(x=H,y=C_min),color="purple1")+ 
  geom_line(data=bands5, aes(x=H,y=C_max),color="purple1")+
  geom_line(data=bands6[-1000,], aes(x=H,y=C_min),color="orange1")+ 
  geom_line(data=bands6[-1000,], aes(x=H,y=C_max),color="orange1")+
  geom_line(data=bands7[-1000,], aes(x=H,y=C_min),color="blue1")+ 
  geom_line(data=bands7[-1000,], aes(x=H,y=C_max),color="blue1")+
  scale_colour_manual(name="D",values=c(red1="#ED0603", green1="#0C9F10", 
purple1="#8A08E0",orange1="#ED6904",blue1="#210CDE"))+labs(x="X", y="Y")

limits为了说明我的上述评论,这里有一个简单的例子:

# Generate some data
df <- data.frame(
    x = 1:20,
    y1 = (1:20) * 0.5,
    y2 = (1:20) * 1,
    y3 = (1:20) * 1.5);

library(tidyverse);
df %>%
    gather(key, value, -x) %>%
    ggplot(aes(x, value, colour = key)) + 
    geom_line()
#生成一些数据
df%
聚集(键,值,-x)%>%
ggplot(aes(x,值,颜色=键))+
geom_线()

正确且整洁的
ggplot
方法是将所有数据放在一个
data.frame
中,然后使用
颜色绘制不同的曲线;这会自动处理图例。请看下面我的小例子。非常感谢。我完全忽略了aes()中的去颜色参数。
# Generate some data
df <- data.frame(
    x = 1:20,
    y1 = (1:20) * 0.5,
    y2 = (1:20) * 1,
    y3 = (1:20) * 1.5);

library(tidyverse);
df %>%
    gather(key, value, -x) %>%
    ggplot(aes(x, value, colour = key)) + 
    geom_line()