7

我能够绘制密度直方图,并且能够使用自定义箱绘制常规直方图,但不能同时绘制。这是我的尝试:

library(ggplot2)

vals = c(2.6, 5.2, 4.1, 6.9, 5.7, 5.2, 4.4, 5.5, 6.3, 6.1, 4.7, 1.4)
myplot = qplot(vals, geom = 'blank') +   
         geom_line(aes(y = ..density..), stat = 'density',
                   colour = 26, size = 2, alpha = .6) +                     
         geom_histogram(aes(y = ..density..), binwidth = 1,
                        fill = 28, alpha = 0.3) +
         stat_bin(breaks=seq(-.5,8.5,1)) + xlim(-1, 9)

print(myplot)

如果删除该项stat_bin,直方图将正确绘制为密度直方图,但具有默认的 bin 位置。添加stat_bin项,分箱是正确的,但它不再是密度直方图。任何想法如何让两者都工作?

4

1 回答 1

18

您可以向 中添加参数breaks=geom_histogram()设置自己的断点(您不必一起使用geom_histogram()and stat_bin(),因为geom_histogram()用于stat_bin()产生结果)。

qplot(vals, geom = 'blank') +   
  geom_line(aes(y = ..density..), colour=26, stat = 'density', size = 2, alpha = .6) + 
  geom_histogram(aes(y = ..density..), fill = 28, alpha = 0.3, breaks=seq(-.5,8.5,1))

在此处输入图像描述

于 2013-11-12T08:08:11.793 回答