【发布时间】:2021-04-05 19:40:50
【问题描述】:
我有一个图,我试图将各个感兴趣组的线性回归线与整个样本的线性拟合进行比较。
library(ggplot2);library(curl)
df<-read.csv(curl("https://raw.githubusercontent.com/megaraptor1/mydata/main/example.csv"))
df$group<-as.factor(df$group)
ggplot(df %>% group_by(group),
aes(x,y,col=group))+
geom_point(size=2.5,shape=21,aes(fill=group),col="black")+
scale_x_continuous(breaks=seq(1,3.25,0.25))+
scale_y_continuous(breaks=seq(0,17,1))+
geom_smooth(data=df %>% group_by(group),
formula=y~x,method="lm",level=0.9,se=F)+
geom_smooth(data=df,linetype="dashed",fill="white",colour="black",size=.75)+
geom_smooth(data=df,linetype="dashed",fill="white",colour="black",size=1)+
labs(color="group",fill="group")+
guides(color=guide_legend(ncol=2),fill=guide_legend(ncol=2))+
theme_classic()+
theme(legend.position = "none")
在此图中,所有样本的拟合均由黑色虚线表示。然而,这条线与周围的数据并没有太大区别,很难看到。我想在黑色虚线周围放置一个白色轮廓,以使其突出并从周围的数据中脱颖而出。
但是,我无法通过 ggplot2 这样做。我知道可以通过在黑线后面绘制一条稍粗的白线来通过非虚线来做到这一点。但是如果我尝试用虚线这样做,它不会产生预期的效果(见上面的代码),因为改变线条的粗细也会改变虚线的长度和间距,因此两者不会对齐并且使黑色虚线弹出。
有什么方法可以在ggplot中设置虚线的边框,在黑色虚线周围绘制白色边框?
【问题讨论】:
标签: r ggplot2 data-visualization visualization figure