如何在ggplot的facet_grid函数中应用下标
how to apply subscript in the facet_grid function of ggplot
我想使用 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)
我想使用 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)