【发布时间】:2021-03-21 06:08:20
【问题描述】:
在使用 scale_x_log10 时在 geom_histogram 中设置 ggplot2 binwidth 会产生奇怪的直方图。
我想在没有找到解决方法here 的情况下调整 binwidth。
我不想使用解决方法的一个原因是我不喜欢它;似乎应该有一个更好的方法内置到 ggplot 中。另一个原因是当我在我的数据集上尝试它时它不起作用。
我正在使用 facet_wrap,因此解决方案需要使用它,但我正在使用的示例代码被精简到最低限度。
当我允许默认 binwidth 时,我得到一个不错的直方图:
library(ggplot2)
data(diamonds)
ggplot(data=diamonds, aes(x=price/carat)) +
geom_histogram() +
scale_x_log10()# +
# facet_wrap(~cut, ncol=1, scales='free_y')
但是,当我设置 binwidth 时,无论 binwidth 是多少,我都会得到一个填充整个图形(或单个 bin?)的均匀分布(除非 binwidth=1,这会产生看起来像两个 bin 或双峰的情况均匀分布?):
ggplot(data=diamonds, aes(x=price/carat)) +
geom_histogram(binwidth=10) +
scale_x_log10()# +
# facet_wrap(~cut, ncol=1, scales='free_y')
设置中断会产生相同的实心方块和新的中断。设置限制清除图表。
在 ggplot() 中设置 binwidth 本身会使图形与默认 binwidths 保持不变,大概是因为 geom_histogram 覆盖了它。而且,scale_x_log10 不接受 binwidth。
在使用 scale_x_continuous 而不是 scale_x_log10 时可以设置 binwidth。
【问题讨论】: