直方图中断,中断点不连续
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")
如何使用预定义断点而不是连续断点在直方图中设置 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")