如何在R中使用ggplot2更改柱状图的位置

4
以下绘制具有左端点为0的区间的直方图。
myplot = ggplot(df,aes(x = myvar)) +
         geom_histogram(aes(y = ..density..), binwidth = .3)  

我希望直方图有一个以0为中心的分组区间。(如果你想知道我为什么要做这样古怪的事情——是为了说明直方图的一些弱点。)


2
欢迎来到 R on SO。强烈建议您使您的代码完全可再现,包括样本数据集、库调用和预期输出。 - N8TRO
1个回答

9
您可以在...中向stat_bin传递breaks参数(geom_histogram调用stat_bin)。
myplot <-  ggplot(df,aes(x = myvar))+
 geom_histogram(aes(y = ..density..), breaks = seq(0,5,by=1))

这将覆盖 bindwidthorigin

有关 stat_bin 的更多详细信息,请参见帮助文档。

您可能还会发现 origin 是一个有用的参数(也许设置 origin = 0),但不能与 breaks 一起使用!


1
origin参数实现了我所期望的功能。它强制直方图从0开始,而不是以0为中心。然而,现在已经弃用了origin,改用boundary - jamesguy0121

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接