R 频率数据直方图
由于大量观测(N=10M),我的数据已经以频率形式总结 例如,是否采用以下形式(df): 先谢谢你R 频率数据直方图,r,ggplot2,R,Ggplot2,由于大量观测(N=10M),我的数据已经以频率形式总结 例如,是否采用以下形式(df): 先谢谢你 编辑以提供禁止使用几何图形列/几何图形列的非整数示例您也可以使用几何图形列 ggplot(df, aes(x, n)) + geom_bar(stat = 'identity') ggplot(df,aes(x,n))+geom\u col()。不要在aes中使用$,而是使用正确的数据参数。@Axeman的评论似乎是正确的;我会添加width=1,这样它看起来像一个直方图,而不是一个条形图:gg
编辑以提供禁止使用几何图形列/几何图形列的非整数示例您也可以使用几何图形列
ggplot(df, aes(x, n)) + geom_bar(stat = 'identity')
ggplot(df,aes(x,n))+geom\u col()
。不要在aes
中使用$
,而是使用正确的数据
参数。@Axeman的评论似乎是正确的;我会添加width=1
,这样它看起来像一个直方图,而不是一个条形图:ggplot(df,aes(x,n))+geom_col(width=1)
谢谢,但这不处理非整数数据,也不允许我设置binwidth。示例:base%summary(n=n())
如果已经创建了频率,为什么要使用bindwidth?在使用summary()制作频率表时,应该设置binwidth。将TIBLE的行组合在一起不是ggplot要做的事情。修好你的x,剩下的就可以了。groupby()
本打算处理分类变量,但在你的例子中,你给它一个连续的实值变量。因此,df
小于base
的唯一原因是将x
四舍五入到小数点后1位。这似乎是造成混淆的一个重要原因。如果x值分布不均匀,则这不起作用。此外,它不能处理替代的箱宽。例如:base%summary(n=n())
ggplot() + geom_histogram(aes(rep(df$x, df$n)))
ggplot(df, aes(x, n)) + geom_bar(stat = 'identity')