如何改变ggplot中的binwidth?

时间:2011-11-08 13:46:13

标签: r ggplot2 histogram

我正在用ggplot做直方图。

p <- ggplot(TotCalc, aes(x=x,y=100*(..count../sum(..count..)))) + 
    xlab(xlabel) + ylab(ylabel) +
    geom_histogram(colour = "darkblue", fill = "white", binwidth=500)

我的x在2到6580之间,我有2600个数据。

我想用不同的binwidth绘制一个直方图。有可能吗?

例如,我想要8个条形,宽度如下:

c(180,100,110,160,200,250,1000,3000)

我该怎么做?

2 个答案:

答案 0 :(得分:15)

如何使用休息?

x <- rnorm(100)
ggplot(NULL, aes(x)) + 
  geom_histogram(breaks = c(-5, -2, 0, 5), 
  position = "identity", colour = "black", fill = "white")

P.S。如果没有明确的通知,请不要交叉发帖。

enter image description here

答案 1 :(得分:2)

使用breaksposition="dodge"

例如:

ggplot(mtcars,aes(x=hp))+geom_histogram(breaks=c(50,100,200,350),position="dodge")

没有你的数据,但是你的例子:

p <- ggplot(TotCalc, aes(x=x,y=100*(..count../sum(..count..)))) +
     xlab(xlabel) + ylab(ylabel) +
    geom_histogram(colour = "darkblue", fill = "white", breaks=cumsum(c(180,100,110,160,200,250,1000,3000)), position="dodge")