【问题标题】:Does ggplot2 exclude some data?ggplot2 是否排除某些数据?
【发布时间】:2017-05-19 18:47:36
【问题描述】:

我想用 ggplot2 创建一些基本的分组条形图,但它似乎排除了一些数据。如果我查看我的输入数据,一切都在那里,但是缺少一些条,并且它也弄乱了错误条。我尝试转换为多种变量类型,重新组合,再次加载,将所有内容保存在 .csv 中并加载全新的...我只是不知道出了什么问题。

这是我的代码:

library(ggplot2)

limits <- aes(ymax = DataCm$mean + DataCm$sd,
          ymin = DataCm$mean - DataCm$sd)


p <- ggplot(data = DataCm, aes(x = factor(DataCm$Zeit), y = factor(DataCm$mean)
           ) )

p + geom_bar(stat = "identity",
         position = position_dodge(0.9),fill =DataCm$group) +
  geom_errorbar(limits, position = position_dodge(0.9),
            width = 0.25) +
  labs(x = "Time [min]", y = "Individuals per foodsource") 

这是DataCm:

  Zeit mean        sd group
1    30  0.1 0.3162278     1
2    60  0.0 0.0000000     2
3    90  0.1 0.3162278     3
4   120  0.0 0.0000000     4
5   150  0.1 0.3162278     5
6   180  0.1 0.3162278     6
7   240  0.3 0.6749486     1
8   300  0.3 0.6749486     2
9   360  0.3 0.6749486     3
10   30  0.1 0.3162278     4
11   60  0.1 0.3162278     5
12   90  0.2 0.4216370     6
13  120  0.3 0.4830459     1
14  150  0.3 0.4830459     2
15  180  0.4 0.5163978     3
16  240  0.3 0.4830459     4
17  300  0.4 0.5163978     5
18  360  0.4 0.5163978     6
19   30  1.2 1.1352924     1
20   60  1.8 1.6865481     2
21   90  2.2 2.0976177     3
22  120  2.2 2.0976177     4
23  150  2.0 1.8856181     5
24  180  2.3 1.9465068     6
25  240  2.4 2.0655911     1
26  300  2.1 1.8529256     2
27  360  2.0 2.1602469     3
28   30  0.2 0.4216370     4
29   60  0.1 0.3162278     5
30   90  0.1 0.3162278     6
31  120  0.1 0.3162278     1
32  150  0.0 0.0000000     2
33  180  0.1 0.3162278     3
34  240  0.1 0.3162278     4
35  300  0.1 0.3162278     5
36  360  0.1 0.3162278     6
37   30  1.3 1.5670212     1
38   60  1.5 1.5811388     2
39   90  1.5 1.7159384     3
40  120  1.5 1.9002924     4
41  150  1.9 2.1317703     5
42  180  1.9 2.1317703     6
43  240  2.2 2.3475756     1
44  300  2.4 2.3190036     2
45  360  2.2 2.1499354     3
46   30  2.1 2.1317703     4
47   60  3.0 2.2110832     5
48   90  3.3 2.1628171     6
49  120  3.2 2.1499354     1
50  150  3.4 2.6331224     2
51  180  3.5 2.4152295     3
52  240  3.7 2.6267851     4
53  300  3.7 2.4060110     5
54  360  3.8 2.6583203     6

输出是:

也许你可以帮助我。提前致谢!

最好的祝愿, 本杰明

解决了: 我重塑了 Excel 中的所有内容并以另一种方式导出。组变量也不是我想要的方式。现在它已经修复了,但我真的不能告诉你为什么。

【问题讨论】:

  • 您能更具体地说明您看到的错误吗?究竟与预期有何不同?
  • 对于初学者,ggplot 术语中不应有任何DataCm$ - 数据对象在第一个参数中定义,然后直接寻址列。
  • @CMichael:当然,我知道这只是故障排除的又一次糟糕尝试......@patrick:正如您在输出图片中看到的那样,缺少一些条(每次应该是 6点)并且错误栏搞砸了。
  • 显示图而不是链接

标签: r ggplot2 bar-chart errorbar


【解决方案1】:

您的数据看起来格式不正确。我猜你想为每个时间点设置 6 个不同的 group 值,但现在 group 变量只是循环,你有:

1    30  0.1 0.3162278     1
...
10   30  0.1 0.3162278     4
...
19   30  1.2 1.1352924     1
...
28   30  0.2 0.4216370     4

geom_bar 然后可能会省略具有相同平均值和时间的行。虽然我不知道它为什么选择这样做,但无论如何你还是应该先解决group的问题。

【讨论】:

  • 感谢您的提示。这是朝着正确方向迈出的一步,但仍然没有解决问题。现在我在 Excel 中重塑了所有内容并以另一种方式导出。有用!但我不知道为什么......
猜你喜欢
  • 1970-01-01
  • 2013-07-07
  • 2020-07-25
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
相关资源
最近更新 更多