如何获取geom_segment显示图例 [英] how to get a geom_segment show a legend
本文介绍了如何获取geom_segment显示图例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在下面的情节中有2个场景.
I have the plot below with 2 segements.
如何为线段添加图例?
理想情况下,最终结果将包含2个图例:
- 一个将是当前的重点图例"
- 另一个图例将是带有红色虚线标记为段图例"的单个图例.
这是代码
set.seed(11)
x = rnorm(100)
y = rnorm(100)
dat = data.frame(x = x, y = y)
ggplot(dat,aes(x=x,y=y)) + geom_point(aes(color="blue") ) +
geom_segment(aes(x = -2, xend = 2, y = 0, yend = 2), color="red", linetype="dashed", size=1.2) +
geom_segment(aes(x = -1, xend = 1, y = -2, yend = -1), color="red", linetype="dashed", size=1.2) +
scale_color_manual(name = "",values = c("blue"),labels="point legend")
推荐答案
#Generate data
x = rnorm(100)
y = rnorm(100)
dat = data.frame(x = x, y = y)
#Create new variable with same value as desired legend label
dat$cat<-rep('segment legend', 100)
colnames(dat)<-c("x","y","segment legend") #change column name to legend label
#Plot
ggplot(dat,aes(x=x,y=y)) + geom_point(aes(color="blue") ) +
geom_segment(aes(x = -2, xend = 2, y = 0, yend = 2, linetype=`segment legend`),
color="red", size=1.2) + #move linetype= to inside aesthetics
geom_segment(aes(x = -1, xend = 1, y = -2, yend = -1, linetype=`segment legend`),
color="red", size=1.2) + #move linetype= to inside aesthetics
scale_color_manual(name = "",values = c("blue"),labels="point legend")+
scale_linetype_manual("segment legend",values=c("segment legend"=2))+
theme(legend.title=element_blank())
这篇关于如何获取geom_segment显示图例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文