首页 > 解决方案 > R ggplot2 - 自定义位置的箱线图?

问题描述

我有兴趣在 R 中制作一个由一系列箱线图组成的图(最好使用 ggplot2,但 base-R 解决方案也适用于我)。我知道如何使用基本的 ggplot2 来做到这一点,但我希望箱线图的位置(沿 x 轴)明确取决于组名,在本例中是一个数字。为了说明,想象一下我在下面的(完全假的和毫无意义的)数据框:

require(ggplot2)
example_df = data.frame(xval = rep(c(5, 10, 20, 50, 100, 200), each = 5), yval = rnorm(30))
example_df %>% ggplot(aes(x = as.character(xval), y = yval)) + geom_boxplot()

这里,“xval”的值代表一个有意义的数字(例如,给予植物或某物的水量)以及一个组。我想要的图表会将xval = 5组的箱线图放在 x=5 线上,依此类推。ggplot 自动执行的操作(据我所知,我需要将 xval 转换为字符才能使代码甚至完全评估)是按字母顺序对 x 值进行排序,生成如下图:

在此处输入图像描述

有没有办法手动更改每个单独的箱形图的位置,使它们最终都在正确的位置?请注意,将 xval 值更改为“005”、“010”等可以正确排序它们,但放置仍然不准确(例如, 和 的图应该相对于 和xval = 100彼此xval = 200远离)。希望这是有道理的,并希望有一个解决方案!xval = 5xval = 10

标签: rggplot2

解决方案


推荐阅读