我有一系列时间点,每个时间点有三组。这些组的数据点被绘制为表示具有组误差条的组均值的点。在同一个图中,我希望通过表示所有三个组合的平均值的单个线来包含(我将数据帧的平均值添加到与各个数据点相同的格式)。这个想法是为了表明方差是在群体之间,而不是在群体内,而在一个图表中仍然显示整体均值的趋势。不幸的是,我为所有组和整体意味着一个单独的线。这里有一些我称之为mean_copies_all的数据:
Target.Name Filter Mean_copies_per_ml
1 1 A 529145.308
2 1 B 182360.807
3 1 C 341843.679
4 10 A 849011.671
5 10 B 212161.046
6 10 C 215310.068
7 11 A 1217760.052
8 11 B 1089211.559
9 11 C 601981.345
10 12 A 99735.053
11 12 B 51514.408
12 12 C 51218.250
13 13 A 48987.897
14 13 B 14574.007
15 13 C 7415.393
16 14 A 56187.722
17 14 B 27481.111
18 14 C 53496.085
19 15 A 23620.870
20 15 B 13247.077
21 15 C 7003.142
22 16 A 42031.020
23 16 B 5704.238
24 16 C 2899.576
25 2 A 60440.491
26 2 B 112070.893
27 2 C 57932.772
28 3 B 133824.150
29 3 C 138466.953
30 4 A 271841.956
31 4 B 70476.821
32 4 C 136501.090
33 5 A 557738.584
34 5 B 282025.027
35 5 C 141771.466
36 6 B 329257.875
37 6 C 328892.995
38 7 A 466721.296
39 7 B 471029.030
40 7 C 477953.408
41 8 A 263504.598
42 8 B 118359.180
43 8 C 239695.292
44 9 A 773710.137
45 9 B 781166.768
46 9 C 199823.470
47 1 mean 351116.598
48 10 mean 425494.262
49 11 mean 969650.985
50 12 mean 67489.237
51 13 mean 23659.099
52 14 mean 45721.639
53 15 mean 14623.696
54 16 mean 16878.278
55 2 mean 76814.719
56 3 mean 136145.552
57 4 mean 159606.622
58 5 mean 327178.359
59 6 mean 329075.435
60 7 mean 471901.244
61 8 mean 207186.356
62 9 mean 584900.125
这是我的代码:
p <- ggplot(mean_copies_all,aes(y=log10(Mean_copies_per_ml),x=as.numeric(Target.Name)))
p + geom_point(aes(colour=Filter)) + xlab("Sample") + ylab("Gene Copies/mL") + geom_line(aes(colour=Filter,stat="mean"))
我尝试使用stat_summary,但我一直收到错误说&#34;&#39;什么&#39;必须是字符串或函数。&#34;我无法找到有关此错误的更多信息,因此我坚持使用geom_line。是否有一种简单的方法来绘制整体平均线?
编辑:我包含了数据并删除了有关在代码中添加错误栏的内容,因为它可能并不相关。
答案 0 :(得分:0)
好的,我意识到我误读了你原来的帖子 - 我认为你想在过滤器意味着......
由于您已经在数据集中准备了手段,因此非常简单:
为了清楚起见,我在ggplot对象之外创建了不同的数据帧 - 你也可以在其中进行过滤。
mean_copies_filtered <- mean_copies_all[mean_copies_all$Filter!="mean",]
means <- mean_copies_all[mean_copies_all$Filter=="mean",]
p <- ggplot(mean_copies_filtered,aes(y=log10(Mean_copies_per_ml),x=as.numeric(Target.Name)))
p <- p + geom_point(aes(colour=Filter)) + xlab("Sample") + ylab("Gene Copies/mL")
p + geom_line(data=means,aes(a=as.numeric(Target.Name),y=log10(Mean_copies_per_ml)))
这会产生: