对R编程非常陌生,想创建一个条形图,然而我的分类x变量仍然是分组的,我得到的是一个单一的条形图,没有任何有用的信息。一个子样本如下。
New Name Tot Pl L Ld P Min
1: 1 376.62 5.91
2: 4 689.07 7.26
3: 5 202.14 4.67
4: 6 516.28 6.01
5: 7 698.02 7.41
6: 8 180.50 3.69
7: 9 163.12 4.24
8: 10 176.66 4.59
9: 11 665.34 7.97
10: 2 584.28 6.18
11: 3 155.67 4.04
12: 1 137.28 3.65
13: 4 181.87 4.84
14: 5 152.95 4.07
15: 6 150.07 3.99
16: 7 156.41 4.16
17: 8 108.19 2.88
18: 9 162.76 4.33
19: 10 175.88 4.68
20: 11 160.88 4.28
21: 2 148.53 3.95
22: 3 155.28 4.13
23: 1 62.84 10.49
24: 4 145.73 10.85
25: 5 12.00 8.08
26: 6 68.25 8.92
27: 7 143.88 11.83
28: 8 0.12 0.56
29: 9 0.22 1.04
30: 10 0.39 1.80
31: 11 162.22 12.08
32: 2 115.77 8.62
33: 3 0.11 0.51
我使用的代码是
ggplot(ngames, aes(x= 'New Name', y= 'Ld P Min')) + geom_bar(stat = "summary")
这给了我这个错误的图
曲线图.
我已经能够使用iris中的库存数据创建一个我正在寻找的示例图,但它似乎无法与我的数据一起工作,尽管所有的数据格式与iris中的数据格式相同。预期图表的例子. 该图的代码是
ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_bar(stat = "identity")
谢谢你的帮助。
假设你的data.frame是这样的(名字有空格是个噩梦)。
structure(list(`New Name` = structure(c(1L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 11L, 2L, 3L, 1L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 2L,
3L, 1L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 2L, 3L), .Label = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11"), class = "factor"),
`Tot Pl L` = c(376.62, 689.07, 202.14, 516.28, 698.02, 180.5,
163.12, 176.66, 665.34, 584.28, 155.67, 137.28, 181.87, 152.95,
150.07, 156.41, 108.19, 162.76, 175.88, 160.88, 148.53, 155.28,
62.84, 145.73, 12, 68.25, 143.88, 0.12, 0.22, 0.39, 162.22,
115.77, 0.11), `Ld P Min` = c(5.91, 7.26, 4.67, 6.01, 7.41,
3.69, 4.24, 4.59, 7.97, 6.18, 4.04, 3.65, 4.84, 4.07, 3.99,
4.16, 2.88, 4.33, 4.68, 4.28, 3.95, 4.13, 10.49, 10.85, 8.08,
8.92, 11.83, 0.56, 1.04, 1.8, 12.08, 8.62, 0.51)), row.names = c(NA,
33L), class = "data.frame")
最好把 "新名称 "转换为因子
df[["New Name"]] = factor(df[["New Name"]])
然后,你就可以把你的变量放在后面的刻度线里,就像 variable
:
ggplot(df,aes(x=`New Name`,y=`Ld P Min`)) + stat_summary(fun="mean",geom="bar")
我不确定这就是全部,因为没有可复制的例子,但我马上看到的是。
1) ggplot不需要将变量名用引号表示。如果你的变量名里有空格,就用勾号代替。另外,如果你指定了你要定义哪些参数,那就更好了。所以把你的第一行改为
ggplot(games, aes(x=`Player Name`, y=`Player Load Per Minute`));
2)正如上面的评论中提到的,你的 geom_bar
语句使用了不需要的参数。你得到的错误是 "ggplot不知道什么是 stat = "summary"
或 fun.y = 'mean'
的手段。" 我建议,不要用YouTube视频作为你的指导,而是用 GGplot参考.