【发布时间】:2015-10-14 04:33:35
【问题描述】:
我想在 ggplot 中为同一图中的箱线图和线图创建一个图。我有一个如下所示的数据框:
Lambda | means | theorMean
1 0.1 10.07989 10
2 0.1 10.55681 10
3 0.1 10.26660 10
4 0.1 10.29234 10
5 0.1 10.07754 10
...
means 是样本均值,理论均值是theorMeans。我想通过箱线图绘制样本均值的分布,而理论均值使用直线。
这就是我目前所拥有的......
library(ggplot2)
library(scales)
p <- ggplot(summ, aes(x=factor(Lambda), y=means)) +
geom_boxplot() +
geom_line(data=summ, aes(x=log10(Lambda), y=means))
问题在于,对于箱形图或小提琴图,我需要使用 x 轴作为因子。另一方面,我需要 x 轴是一个数字。我基本上想在我生成的箱形图中拟合一条理论线。我怎么可能做到这一点?
【问题讨论】:
-
我不确定我是否误解了,但如果问题只是 lambda 类,您可以简单地从
ggplot()中删除aes(x=factor(Lambda), y=means)并将其放在geom_boxplot()内。或者,您可以使用inherit.aes = FALSE阻止geom_line中aes的继承。如果我误解了某些内容,请告诉我。 -
嗯,我想把两个地块对齐。事实上,我什至不需要data.frame 中的
thermion。我可以简单地绘制(lambdavs.1/lambda)。只是lambda最初是对数缩放的。因此,我无法将未按对数缩放的因素排列成一行。我尝试了您对ggplot(summ)+geom_boxplot(aes(x=factor(Lambda), y=means)) + geom_line(aes(x=Lambda, y=means))的建议,但没有帮助。不过感谢您的建议!