【问题标题】:Stacked Bar Charts ggplot2 error堆积条形图ggplot2错误
【发布时间】:2016-03-30 23:15:50
【问题描述】:

我的数据位于名为 df_M 的数据框中,如下所示:

    Var1 Var2 Freq
1     A    2    4
2     B    2   18
3     C    2   32
4     D    2    0
5     E    2    3
6     F    2    0
7     G    2    0
8     A    3    1
9     B    3   26
10    C    3    0
11    D    3    0
12    E    3    0
13    F    3   15
14    G    3    0
15    A    4   43
16    B    4    0
17    C    4    0
18    D    4    0
19    E    4    0
20    F    4    0
21    G    4    0
22    A    5    0
23    B    5    0
24    C    5    0
25    D    5   25
26    E    5    0
27    F    5    0
28    G    5   12
29    A    6    2
30    B    6    7
31    C    6    0
32    D    6    0
33    E    6    0
34    F    6    0
35    G    6    0
36    A    7    2
37    B    7    0
38    C    7    0
39    D    7    0
40    E    7    0
41    F    7    0
42    G    7    0
43    A    8    0
44    B    8    0
45    C    8    0
46    D    8    0
47    E    8    0
48    F    8    1
49    G    8    0
50    A    9    0
51    B    9    0
52    C    9    1
53    D    9    0
54    E    9    0
55    F    9    0
56    G    9    0
57    A   10    0
58    B   10    0
59    C   10    0
60    D   10    0
61    E   10    0
62    F   10    1
63    G   10    0

我正在使用以下代码创建堆积条形图:

ggplot(data=df_M, aes(x=Var2, y=Freq, fill=Var1))+geom_bar()

但是,我收到以下错误:

Error: stat_count() must not be used with a y aesthetic.

我已经确保 Freq 是一个整数:

> class(df_M$Freq)
[1] "integer"
> class(df_M$Var1)
[1] "factor"
> class(df_M$Var2)
[1] "factor"

我不确定我哪里出错了。我的数据性质似乎和教程here中的一样

【问题讨论】:

  • 尝试将stat = "identity" 添加到您的geom_bar 通话中。

标签: r ggplot2


【解决方案1】:

我假设Freq 已经是您酒吧高度的计数。您必须设置stat = "identity",因为默认情况下它是stat = "count",并且必须在aes 中不提供y,因为stat_count 应用于x 并计算y。这是错误的含义。

对于您的数据:

ggplot(data=DT, aes(x = Var2, y = Freq, fill = Var1)) + geom_bar(stat = "identity")

【讨论】: