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")))
)