我的实际数据集非常大,需要一些时间来处理它。于是我写了一个C程序来计算每个可能值的频率。 (也就是说,在数据集中的可能值是0,1,2,3
)所以我有(用于演示的缘故)的频率分布如下:只有频率时用ggplot2绘制直方图
0.1 0.4 0.3 0.2
如果我使用geom_histogram
养活这些数据来ggplot2
,我没有得到正确的直方图。那么如何绘制一个具有上述频率分布的直方图呢?
我的实际数据集非常大,需要一些时间来处理它。于是我写了一个C程序来计算每个可能值的频率。 (也就是说,在数据集中的可能值是0,1,2,3
)所以我有(用于演示的缘故)的频率分布如下:只有频率时用ggplot2绘制直方图
0.1 0.4 0.3 0.2
如果我使用geom_histogram
养活这些数据来ggplot2
,我没有得到正确的直方图。那么如何绘制一个具有上述频率分布的直方图呢?
您需要在geom_bar
调用中使用stat = 'identity'
。
library(ggplot2)
dat <- data.frame(x = c(0, 1, 2, 3), y = c(0.1, 0.4, 0.3, 0.2))
ggplot(dat) +
geom_bar(mapping = aes(x = x, y = y), stat = "identity")
回应上面的@ joran的评论,'geom_col'避免输入'stat =“identity”' – bouncyball
是的,'geom_col'是一个非常有用的图层。请注意,它是在ggplot2版本2.2.0中引入的。 – Peter
x轴标签没有意义 – Al14
我没有创建一个额外的数据帧的方法。在x轴上,你可以找到你的频率数
library(ggplot2)
x<-c(0.1, 0.4, 0.3, 0.2)
ggplot(data.frame(x), aes(y=x, x=1:length(x)))+
geom_bar(stat = "identity")
可能尝试'geom_col'初学者。 – joran