2017-06-13 569 views
0

我的实际数据集非常大,需要一些时间来处理它。于是我写了一个C程序来计算每个可能值的频率。 (也就是说,在数据集中的可能值是0,1,2,3)所以我有(用于演示的缘故)的频率分布如下:只有频率时用ggplot2绘制直方图

0.1 0.4 0.3 0.2 

如果我使用geom_histogram养活这些数据来ggplot2,我没有得到正确的直方图。那么如何绘制一个具有上述频率分布的直方图呢?

+2

可能尝试'geom_col'初学者。 – joran

回答

3

您需要在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") 

enter image description here

+0

回应上面的@ joran的评论,'geom_col'避免输入'stat =“identity”' – bouncyball

+0

是的,'geom_col'是一个非常有用的图层。请注意,它是在ggplot2版本2.2.0中引入的。 – Peter

+0

x轴标签没有意​​义 – Al14

0

我没有创建一个额外的数据帧的方法。在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")