【问题标题】:Plot a histogram in ggplot2在 ggplot2 中绘制直方图
【发布时间】:2015-06-20 14:08:10
【问题描述】:

想用我的数据在这里复制它

Plot histograms over factor variables

我的数据是这样的

2 -11.0  0
2 -10.8  0
2 -10.6  0
2 -10.4  0
2 -10.2  0

完整的数据框在这里https://www.dropbox.com/s/r616tyr17q40x6g/t4.RData?dl=0

第一列是直方图编号,接下来是 bin,最后是每个 vi bin 的计数。与原始示例一样(工作日、小时数、计数)。

我还考虑列 - 因为我没有字符串,我只是这样做

as.factor(df[,3])-.df[,3]
asfactor(df[,2])->df[,2]

每个直方图的 bin 都相同。直方图 1 到 1598 都有 60 个 bin,范围从 -11 到 plus 2 x 0.2。这是在第 2 列。具体计数在第 3 列,而 ind 在第 1 列。

然后我做

p<-ggplot(data=t4, aes(x=V2))
p<-p+geom_histogram(aes(weights=V3))
p<-p+facet_wrap(~V1,ncol=1)

当我绘制 p 时,我得到了

Error in Summary.factor(structure(1L, .Label = c("0", "1", "2", "3", "4",  : 
  sum not meaningful for factors

对于每个直方图。

为什么会出现这个错误>

我如何也摆脱代码中绘制的每个直方图的大标题 - 在我的情况下,它看起来像这样 http://postimg.org/image/4yhvz9i67/

【问题讨论】:

    标签: r charts ggplot2


    【解决方案1】:

    由于某种原因,您的 V2V3 列是因素。跑吧

    t4$V2 <- as.numeric(t4$V2)
    t4$V3 <- as.numeric(t4$V3)
    

    而这个问题将得到解决。首先弄清楚为什么它们是因素是个好主意,也许您必须调整函数才能将数据读入 R。

    我不认为你想以这种方式使用构面。它将尝试创建 1599 个方面,这对我来说在实际绘制之前冻结了 R 会话。

    之后我得到了以下情节:

    library(ggplot2)
    ggplot(data=t4, aes(x=V2)) + geom_histogram(aes(weights=V3))
    

    【讨论】:

    • 问题是,如果它是数字,它将不起作用-根据原始帖子,您必须指定 abndwith 参数,这是错误 Igt...您知道如何绘制垂直1600?
    • 如果我这样做的话,我得到的正是我所展示的图片......必须有其他方式......
    • @heineman 检查我的编辑。我得到了一个常规的直方图,而不是你发布的图像。那是你要找的吗?链接答案中使用的因素不是计数的元素,而是组。我认为你应该再读一遍。
    • 情节应该是彼此下方的 1600 个历史记录,只有 1 个,并且 bin 被搞砸了,因为它不再是事实
    • 如果你想在另一个之上绘制 1600 个直方图,那是不对的。您需要一张非常大的图片,否则您将看不到任何内容。
    猜你喜欢
    • 1970-01-01
    • 2018-04-03
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    相关资源
    最近更新 更多