如何将 R 中条形图的限制扩展到数据限制之外?

How to expand the limits of a barplot in R beyond the data limits?

我想创建一些数据的条形图,这些数据是我使用 R 编程语言从调查中收集的。我的数据的 X 值在 4-10 之间,但我希望我的 x 轴在 0-10 之间,以显示我的调查可能给出的全部变量范围。

数据:

X = 4 5 6 7 8 9 10 

Y = 5 7 2 10 5 2 5

我试过:

barplot(data, xlim(0,10),xpd=TRUE)

我也尝试过在 ggplot2 中使用 'expand_limits' 函数,但也无济于事。 这没有达到我的预期。我希望我的图表介于 0 和 10 之间,条形图仅绘制在 4-10 的 x 值上。

如果有人能帮助我,我将不胜感激。

条形图实际上是针对分类变量的,因此如果您将 X 变量转换为一个因子并包含您想要的所有水平,您应该会得到所需的图:

data <- data.frame(X = factor(c(4, 5, 6, 7, 8, 9, 10), levels = 1:10),
                   Y = c(5, 7, 2, 10, 5, 2, 5))

barplot(Y ~ X, data = data, xpd=TRUE)

reprex package (v0.3.0)

于 2020-06-29 创建

欢迎来到 SO!

barplot 函数实际上没有“x 轴”,如您所见。如果你尝试使用限制,它会假设你给它的第一个高度是高度数字 1 等等,并把“空space”放在最后。

或者,这个 ggplot2 解决方案应该有效:

library(ggplot2)
ggplot(df, aes(X, Y)) +
    geom_col(color = "black", fill = "grey60") +
    lims(x = c(0,10.5)) +
    theme_classic()

您可以阅读更多相关内容来调整情节风格。