考虑以下两个图
library(ggplot2)
set.seed(666)
bigx <- data.frame(x=sample(1:12,50,replace=TRUE))
ggplot(bigx, aes(x=x)) +
geom_histogram(fill = "red", colour =
"black",stat="bin",binwidth=2) +
ylab("Frequency") +
xlab("things") +
ylim(c(0,30))
hist(bigx$x)
为什么我会在ggplot上获得超过12的悬念?当我使用right = TRUE
时,这只会将悬垂移动到零以下。我想要hist()
的简单且简单有界的结果,但使用ggplot2
。
我该怎么做?
答案 0 :(得分:0)
如果您的目标是使用hist(...)
重现ggplot
的输出,则可以使用:
ggplot(bigx, aes(x=x)) +
geom_histogram(fill = "red", colour = "black",stat="bin",
binwidth=2, right=TRUE) +
scale_x_continuous(limits=c(0,12),breaks=seq(0,12,2))
或者,更一般地说,这个:
brks <- hist(bigx$x, plot=F)$breaks
ggplot(bigx, aes(x=x)) +
geom_histogram(fill = "red", colour = "black",stat="bin",
breaks=brks, right=TRUE) +
scale_x_continuous(limits=range(brks),breaks=brks)
显然,直方图的ggplot
默认值是使用右边闭合间隔,而hist(...)
的默认值是闭合间隔。此外,ggplot
使用不同的算法来计算x轴中断和限制。