R ggplot2中的单独图例geom_光滑

R ggplot2中的单独图例geom_光滑,r,ggplot2,R,Ggplot2,我想画一个与此非常相似的图: library(ggplot2) ggplot(data=mtcars, aes(x = wt,y = mpg, colour = factor(cyl))) + geom_line() + geom_smooth(method = "lm", se=FALSE, lty = 2) 但是,我特别希望在图例中为虚线(线性趋势)和实线(数据)添加不同的条目。这看起来很琐碎,但出于某种原因,我一直无法理解。如果您需要在一个图例中显示6个不同的级别,并结合线型

我想画一个与此非常相似的图:

library(ggplot2)

ggplot(data=mtcars, aes(x = wt,y =  mpg, colour = factor(cyl)))  + 
  geom_line() + geom_smooth(method = "lm", se=FALSE, lty = 2)

但是,我特别希望在图例中为虚线(线性趋势)和实线(数据)添加不同的条目。这看起来很琐碎,但出于某种原因,我一直无法理解。如果您需要在一个图例中显示6个不同的级别,并结合线型和颜色,那么一个解决方案是创建新的数据帧,其中包含原始的
mpg
值和线性模型的预测值

创建新的数据帧
mtcars2
,其中用预测值替换
mgp

library(plyr)
mtcars2<-ddply(mtcars,.(cyl),mutate,mpg=predict(lm(mpg~wt)))
合并两个数据帧

mtcars.new<-rbind(mtcars,mtcars2)

非常感谢!我想知道是否有可能将条目与数据的颜色混合在一起。如:6个条目,红色实线:4,红色虚线:4(线性趋势),绿色实线:6,绿色虚线:6(线性趋势),蓝色实线:8,蓝色虚线:8(线性趋势)?@Sachaepskam更新了我的答案,使图例具有6个级别
mtcars.new<-rbind(mtcars,mtcars2)
ggplot(mtcars.new,aes(x=wt,y=mpg,color=interaction(type,factor(cyl)),
              lty=interaction(type,factor(cyl))))+
  geom_line()+
  scale_color_manual("Legend",values=c("red","red",
                            "green","green","blue","blue"))+
  scale_linetype_manual("Legend",values=c(2,1,2,1,2,1))