我希望使用ggplot来绘制空气污染物与出生体重变化(95%CI)关联的结果。
我的数据格式如下:
variable exposure period coef coef_lb coef_ub
PM10 entire pregnancy -27.6 -49.2 -3.8
SO2 entire pregnancy 40 14.2 62.8
NO entire pregnancy -26 -44 -6.4
NO2 entire pregnancy 0 -20 19
PM10 trimester1 -29.4 -49.4 -8
SO2 trimester1 12 -9 31.8
NO trimester1 5.2 -15.2 28.2
NO2 trimester1 -2.2 -23 16.6
PM10 trimester2 -11.8 -35.2 11.2
SO2 trimester2 26.2 2 51.4
NO trimester2 -10.8 -35.2 12.4
NO2 trimester2 -7.4 -27.8 14.6
PM10 trimester3 6.2 -17.6 28.2
SO2 trimester3 0.6 -19 22.4
NO trimester3 -24 -43 -5.4
NO2 trimester3 7 -11.4 26.8
我得到了上面的图表。但是有一件事情我想改进,就是将PM10更改为PM +(下标为10),以及SO2和NO2等类似的更改。
g <- ggplot(data=result, aes(x=exposure.period, y=coef))
g <- g + facet_grid(.~variable)
g <- g + geom_pointrange(aes(ymin=coef_lb, ymax=coef_ub))
g <- g + geom_point()
g <- g + scale_y_continuous(breaks = (seq(-80, 80, by = 10)))
g <- g + xlab("Exposure period")
g <- g + ylab("Mean change in birth weight (gram)")
g <- g + theme(axis.text.x=element_text(angle = 45, hjust = 1))
g
我使用了上述脚本,我知道我可以将"facet_grid(.~variable)"更改为"facet_grid(.~variable, labeller="lablevalue")"; 并通过"expression("PM"[10])"实现下标。
但是我不确定如何将其放入labeller函数中。
我尝试添加
lablevalue <- c(expression("PM"[10]),expression("SO[2]), "NO","expression("NO"[2])")
g <- g + facet_grid(.~variable, labeller=lablevalue)
但是它没有起作用。
有人能帮忙吗?谢谢!
expression(P*M[10])
,并避免语法错误(注意代码的语法高亮)。如果您需要进一步的帮助,应该创建一个可重现的示例。 - Roland