【问题标题】:histogram for data frame binned data [duplicate]数据框分箱数据的直方图
【发布时间】:2012-10-05 10:55:50
【问题描述】:

可能重复:
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 厘米,依此类推... 非常感谢您的回答

【问题讨论】:

  • 能否提供几行数据?
  • 欢迎来到 SO,如果您给我们一个 reproducible example 和使用 dput(your.data) 的数据样本,您的问题会更好地理解
  • 试试这个,但是我不能给你一个合理的解决方案,而不会从你这边对你的数据结构有任何提示。设置 xmin 和 xmax 的值。查看 ggplot2 包的帮助页面:?geom_histogram
  • require("ggplot2"); ggplot(data=data, aes(x=Fishes per length, xmin=, xmax=)) + stat_bin(binwidth = 1)

标签: r ggplot2 dataframe histogram


【解决方案1】:

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

鱼的长度从 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)

创建一个包含长度和计数的数据框1。注意: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 了解更多信息

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2013-08-15
    • 1970-01-01
    • 2012-07-03
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2012-08-31
    • 2011-01-24
    相关资源
    最近更新 更多