library(dplyr)
df <- data.frame(
group=c(1,2,3,4,1,2,3,4),
type=c(rep(1,4),rep(2,4)),
value = c(0.5, 2, 1.5, 1.8, 0.9,1.2,1.4,1.6),
upper = c(0.8,2.5, 1.9, 2.6,1.1,1.4,1.8,2.0),
lower = c(-0.3, 1.0, 1.1, 0.1,0.7,1.1,1.2,1.3)
)
df<-df%>%mutate(group=factor(group,labels=c("Q1","Q2","Q3","Q4")),
type=factor(type,labels=c("PM10","PM2.5")))
图形化展示比值比和可信区间数据的另一种方式
R
科研作图
其实一类数据的展示方式有多种,可以用表格的形式展示,也可以用图的形式来展示。两种方式各有优缺点,表格可以展示信息量比较丰富的数据,但是不太直观;而图的展示方式比较直观,但是展示的信息量有限。所以,我们在选择展示方式时,需要平衡这两者之间的关系。
我们在前面的一篇博文中介绍了利用森林图的方式展示比值比数据,这种方式对于展示多个不同类型变量,不同亚组的比值比数据比较有优势,但是如果我们的研究结果变量类型比较单一的话,也可以试试我们下面一种展示方式。
首先,我们生成一组比值比可信区间数据,包含5个变量:group分组1,2,3,4分别代表Q1、Q2、Q3和Q4;type:指标类型,1代表PM10,2代表PM2.5;value代表OR值,lower和upper分别代表95%可信区间的下限和上限。
然后,我们把group和type两个变量因子化,并添加相应的值标签,这样标签数据就可以显示到图上。
我们可以利用ggplot2的geom_point函数绘制OR值的点,利用geom_errorbar函数绘制95%可信区间的上下限值,利用geom_hline函数绘制参考线,然后利用facet_wrap函数把两个指标的图绘制到一张图上。
library(ggplot2)
df%>%ggplot(aes(x=group,y=value))+
geom_point(aes(colour=type),shape="square",size=3)+
geom_hline(aes(yintercept=1),linetype=8)+
geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.1)+
scale_y_continuous(breaks = seq(-1, 3, by = 0.5)) +
facet_wrap(~type)+
labs(x = "Hypertension", y = "Adjusted OR and 95% CI")+
theme_classic()+
theme(
strip.text.x = element_blank(),
legend.position = c(0.1,0.9),
legend.title = element_blank()
)->pp
Warning: A numeric `legend.position` argument in `theme()` was deprecated in ggplot2
3.5.0.
ℹ Please use the `legend.position.inside` argument of `theme()` instead.
Saving 7 x 5 in image
上图就是我们最终的结果。R的绘图功能很强大,很灵活,可以实现很精确的绘图,让我们坚持每天学一点科研作图吧!
回到顶部