我想用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
我使用了上面的脚本,我知道我可以改变&#34; facet_grid(.~ variable)&#34;进入&#34; facet_grid(.~ variable,labeller =&#34; lablevalue&#34;)&#34 ;;并用&#34;表达式实现下标(&#34; PM&#34; [10])&#34;。
但我不知道如何将它放入贴标机功能。
我尝试添加
lablevalue <- c(expression("PM"[10]),expression("SO[2]), "NO","expression("NO"[2])")
g <- g + facet_grid(.~variable, labeller=lablevalue)
但它不起作用。
有人可以帮忙吗?谢谢!
答案 0 :(得分:10)
尝试以下方法:
levels(result$variable) <- c("PM[10]","SO[2]", "NO", "NO[2]")
# After changing the values run the whole code again:
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))
# Use label_parsed
g + facet_grid(.~variable, labeller = label_parsed)