如何在直方图图中设置X轴,用预定义的断点代替连续断点。
breaks=c(0,5,10,100,200,1000)断点是根据垃圾箱范围内的频率选择的。如何实现这一点而不是breaks=c(0,5,10,15,20)连续断点?
编辑:我已经分别计算了频率并用geom_bar绘制

期望与hist图类似的输出。
发布于 2015-09-30 22:16:22
也许我不明白这个问题。但你就不能这么做吗?
x <- rnorm(1000, mean= 10, sd= 5)
range(x) # need to have the whole range of x in the histogram
hist(x, breaks= c(range(x)[1], 0, 5, 7, 12, 20, range(x)[2]))
library(ggplot2)
brks=c(range(x)[1], 0, 5, 7, 12, 20, range(x)[2])
ggplot(data.frame(x), aes(x=x)) +
geom_histogram(breaks= brks) + scale_x_continuous(breaks= brks)显然,您可以为任意格式添加theme(... element_text())选项。
发布于 2015-09-30 23:18:44
如果你还感兴趣,也许是这样的:
library(plyr)
library(ggplot2)
library(dplyr)
data("diamonds")
head(diamonds)
c(0,1000,4000,20000) -> breaks
cut(diamonds$price, breaks = breaks) -> diamonds$newprice
diamonds %>%
group_by(cut, newprice) %>%
summarise(num = n()) %>%
as.data.frame -> newdi
ggplot(data = newdi) +
geom_bar(aes(x = newprice, y = num, fill = cut), stat = "identity", position = "dodge")

发布于 2015-09-30 22:09:12
一般来说,直方图将有相同大小的垃圾箱,因为它是作为概率分布的估计。
您可以自己进行计数聚合,然后利用geom_bar()创建带有特定bin间隔的条形图。
https://stackoverflow.com/questions/32875118
复制相似问题