数据帧分箱数据的直方图

时间:2012-10-05 10:55:50

标签: r ggplot2 dataframe histogram

  

可能重复:
  how to define fill colours in ggplot histogram?

我想从数据框中绘制(直方图)每长度类鱼类的数量,该数据框以分箱格式(data.frame(...,length = length,counts = N))汇总该信息。我是ggplot2的新用户,但似乎它可能是一个不错的选择。我可以从data.frame对象创建这个直方图吗?

很抱歉这么简短,这是一块df的结构,

'data.frame':   416 obs. of  3 variables:
 $ specie: Factor w/ 1 level "speciesA": 1 1 1 1 1 1 1 1 1 1 ...
 $ length: num  34.5 35 35.5 36 36.5 37 37.5 38 38.5 39 ...
 $ Counts: num  2 0 0 0 1 0 1 1 0 1 ...

在这种情况下,渔民捕获2个人34.5厘米大,1 36.5,等等...... 非常感谢您的回答

1 个答案:

答案 0 :(得分:0)

由于您未提供数据样本,因此我根据您的描述创建了数据。

鱼的长度从34.5到49.5(任意单位:a.u。)。鱼的最小长度为34.5,鱼的最大长度为49.5

 x <- 34.5:49.5

具有特定长度的鱼数从0开始,到2结束。

 y <- 0:2

创建长度为x

的计数样本
 Counts <- sample(y, length(x), replace=TRUE)

创建包含长度和计数的dataframe1。注意:df1的结构满足您描述的数据结构

df1 <- data.frame(length=x, Counts = Counts)

由于您已经计算了具有特定长度的鱼的数量,您必须将其转换回原始格式,即,如果2鱼有34.5(a.u),则应将其转换回两个34.5s。

df2 <- data.frame(length = rep(df1$length, df1$Counts))

使用ggplot函数绘制数据。请注意,有很多方法可以做同样的情节。您也可以尝试geom_histogram来获得相同的情节。

require("ggplot2")
ggplot(data=df2, aes(x=length, xmin=34.5, xmax=49.5)) + stat_bin(binwidth=1)

检查此site以获取更多信息

希望这有帮助!