直方图中断,中断点不连续

histogram breaks with not continuous break points

如何使用预定义断点而不是连续断点在直方图中设置 X 轴。

breaks=c(0,5,10,100,200,1000)

根据 bin 范围内的频率选择断点。如何实现这个而不是 breaks=c(0,5,10,15,20) 连续断点?

编辑: 我已经分别计算了频率并使用 geom_bar 绘制

期待与 hist 情节相似的输出。

通常,直方图将具有相同大小的 bin,因为它旨在作为概率分布的估计值。

您可以自己进行计数聚合,然后利用 geom_bar() 创建具有特定 bin 间隔的条形图。

可能是我没看懂问题所在。但是你不能已经这样做了吗?

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()) 选项

如果您仍然感兴趣,也许是这样的:

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")