R 如何从geom_点删除图例并将两条平滑线的线型图例移动到图形内部

R 如何从geom_点删除图例并将两条平滑线的线型图例移动到图形内部,r,ggplot2,R,Ggplot2,我有数据帧df: df<- data.frame(C.D=c(5,5,5,10,10,10,20,20,20,40,40,40,80,80,80,100,100,100,130,130,130,160,160,160,190,190,190,220,220,220,250,250,250,280,280,280,310,310,310,340,340,340,359,359,359), Activity=c(1.1,1.6,0.6,1.2,1.8,1.3,1

我有数据帧
df

df<- data.frame(C.D=c(5,5,5,10,10,10,20,20,20,40,40,40,80,80,80,100,100,100,130,130,130,160,160,160,190,190,190,220,220,220,250,250,250,280,280,280,310,310,310,340,340,340,359,359,359),
                Activity=c(1.1,1.6,0.6,1.2,1.8,1.3,1.3,1.4,1.88,0.99,1.8,2.1,1.75,1.5,2.4,1.55,0.9,2.4,1.4,1.5,3.2,1.7,2.1,3.8,2.8,3.9,2.1,3.4,2.6,4.1,2.3,3.6,4.3,3.0,2.4,1.8,2.5,1.6,1.1,0.5,1.4,2.3,0.8,2.1,1.5),
                C.I=c(0.05,0.21,0.11,0.2,0.15,0.28,0.24,0.18,0.33,0.11,0.22,0.13,0.16,0.31,0.23,0.15,0.28,0.36,0.25,0.31,0.58,0.42,0.36,0.52,0.58,0.82,0.71,0.64,0.51,0.4,0.54,0.55,0.68,0.32,0.21,0.23,0.37,0.22,0.15,0.21,0.24,0.18,0.04,0.6,0.12))

df

   C.D Activity  C.I
1    5     1.10 0.05
2    5     1.60 0.21
3    5     0.60 0.11
4   10     1.20 0.20
.    .       .    .
.    .       .    .
.    .       .    . 

但是,我想将几个绘图与
网格一起排列。排列
(4x4),我需要删除右侧的所有图例。我想删除与代码行
几何点(aes(C.D.4m,VeDBA,color=C.I.4m))相关的图例
,并将
线型的图例移动到图形的插入端(中上侧)


如果我尝试
主题(legend.position='none')
我会删除这两个图例。如何删除与我在
geom_点中的着色方式相关的图例,并将与
线型相关的图例移动到绘图内部?

您应该在
缩放颜色连续
中使用
guide=FALSE
删除颜色图例,然后使用
图例.对齐
图例。定位
以移动线型图例

因此,对于绘图,应执行以下操作:

ggplot(df、aes(C.D、活动))+
几何点(aes(C.D,活性,颜色=C.I))+
比例颜色梯度n(颜色=c(“绿色”、“黑色”))+
主题_bw()+
几何平滑(aes(linetype=“Activity”))+
ggtitle(“根据每小时数据得出的冬季C.D.20m的平均活动度”)+
主题(plot.title=element\u text(hjust=0.5))+
几何平滑(aes(C.D,C.I*6,线型=“C.I.”),se=FALSE,color=“red”,show.legend=TRUE)+
比例y连续(秒轴=秒轴(trans=~./6,name=“CI”))+
比例\线型\手册(
值=c(1,1),
指南=指南\图例(override.aes=列表(颜色=c(“蓝色”、“红色”))
) + 
比例\颜色\连续(引导=假)+
主题(legend.justification=c(1,1),
图例.位置=c(1,1))
并得到以下曲线图:

编辑

我刚刚意识到这个解决方案并没有保持颜色schme(绿点)。另一种解决方案是在
geom_点
中使用
show.legend=FALSE
。 因此,如果您正在这样做:

ggplot(df、aes(C.D、活动))+
几何点(aes(C.D,活动,颜色=C.I),显示图例=假)+
比例颜色梯度n(颜色=c(“绿色”、“黑色”))+
主题_bw()+
几何平滑(aes(linetype=“Activity”))+
ggtitle(“根据每小时数据得出的冬季C.D.20m的平均活动度”)+
主题(plot.title=element\u text(hjust=0.5))+
几何平滑(aes(C.D,C.I*6,线型=“C.I.”),se=FALSE,color=“red”,show.legend=TRUE)+
比例y连续(秒轴=秒轴(trans=~./6,name=“CI”))+
比例\线型\手册(
值=c(1,1),
指南=指南\图例(override.aes=列表(颜色=c(“蓝色”、“红色”))
)  +
主题(legend.justification=c(1,1),
图例.位置=c(1,1))
您将获得以下绘图:


嗨,Dekike,我编辑了我的帖子,让情节保持你的配色方案。太好了!!!我刚刚给你写了这个。。。。我想问你如何保持点的颜色。。。你现在的答案是完美的。非常感谢:)我的荣幸!当你在一个小屏幕上工作时,这就是问题所在,有时你只有在发布后才能看到绘图的变化。。。我的错。
ggplot(df, aes(C.D, Activity)) +
  geom_point(aes(C.D, Activity, color = C.I)) + 
  scale_colour_gradientn(colours=c("green","black")) + 
  theme_bw() + 
  geom_smooth(aes(linetype = "Activity"))  +
  ggtitle("Activity ~ Current Direction 20 meters") +
  theme(plot.title = element_text(hjust = 0.5)) +
  geom_smooth(aes(C.D, C.I * 6, linetype = "C.I."), se=FALSE, colour = "red", show.legend = TRUE) +
  scale_y_continuous(sec.axis = sec_axis(trans = ~ . / 6, name = "CI")) +
  scale_linetype_manual(
    values = c(1,1), 
    guide = guide_legend(override.aes = list(colour = c("blue", "red")))
  )