我想使用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])“实现下标。
但是我不确定如何将其放入贴标签机功能中。
我尝试添加
lablevalue <- c(expression("PM"[10]),expression("SO[2]), "NO","expression("NO"[2])")
g <- g + facet_grid(.~variable, labeller=lablevalue)
但它没有用。
有人可以帮忙吗?谢谢!
最佳答案
请尝试以下方法:
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)
关于r - 如何在ggplot的facet_grid函数中应用下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28316214/