如何将 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()
您可以阅读更多相关内容来调整情节风格。
我想创建一些数据的条形图,这些数据是我使用 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()
您可以阅读更多相关内容来调整情节风格。