0

我有以下代码生成以下图表。

colvec <-c("white", "white","gray85", "gray85", "gray58", "gray58", "gray33", "gray33","black", "black") 

ggplot(nut, aes(Date, Nitrate, group=Wetland, shape=Hydrology)) +
  geom_point(aes(fill=Wetland), colour="black", size=4)+
  scale_fill_manual(values=colvec) +
  scale_shape_manual(values=c(21,22))+
  facet_grid(. ~ Hydrology) +
  ylab ("Nitrate (mg/L) ") +
  theme(legend.position="none",
        panel.background = element_rect(fill='white', colour='white'), 
        panel.grid = element_line(color = NA),
        panel.grid.minor = element_line(color = NA),
        panel.border = element_rect(fill = NA, color = "black"),
        axis.text.x  = element_text(size=10, colour="black"),  
        axis.title.x = element_text(vjust=0.1),
        axis.text.y = element_text(size=12, colour="black"),
        axis.title.y = element_text(vjust=0.3))

在此处输入图像描述

我不知道如何使用stat_sum每个日期的 5 个点平均在一起。该程序将每个不同的阴影点(对应于湿地)视为其自己的平均值。我想保留湿地分组并将其显示为不同的阴影,但也显示每个日期所有 y 值的平均值。

数据

     枣湿地水文硝酸盐
1 6 月 17 日一脉冲 0.2647287              
2 7 月 18 日一脉冲 0.1807388             
3 8 月 1 日脉冲 0.9895910      
4 8 月 15 日一脉冲 0.6566667       
5 11 月 7 日 1 脉冲 0.2150000      
6 17-6月 2静态 0.2134027      
7 7 月 18 日两个静态 0.1971669      
8 1-8 月 2 日静态 0.4774424       
9 8 月 15 日两个静态 0.3110000      
10 11 月 7 日两个静态 0.3333333       
11 6 月 17 日 三脉冲 0.3369253       
12 7 月 18 日 三脉冲 0.2056284       
13 8 月 1 日 三 脉冲 0.6731924       
14 8 月 15 日三脉冲 0.5516667       
15 11 月 7 日 三脉冲 0.1853333      
16 17-6月 四静 0.3293668      
17 7 月 18 日 四静 0.4664748       
18 8 月 4 日 静态 0.4555003       
19 8 月 15 日四 静态 0.3993333       
20 11 月 7 日 4 静态 0.1133333       
21 6月17日 五静 0.3497963     
22 7月18日 五静 0.3618659      
23 8 月 5 日 0.3721719 静态     
24 8 月 15 日五 静态 0.2916667      
25 11 月 7 日 5 静态 0.2526667      
26 6 月 17 日 6 脉冲 0.2779667       
27 7 月 18 日 六脉冲 0.7609531      
28 8 月 6 日 0.7177083 脉冲       
29 6 月 15 日 6 脉冲 0.6610000       
30 11 月 7 日 六脉冲 0.2083333       
31 6 月 17 日七脉冲 0.2232040      
32 7 月 18 日 七脉冲 0.3655621       
33 7 月 1 日 脉冲 0.7006131       
34 7 月 15 日 脉冲 0.4753333      
35 11 月 7 日七脉冲 0.3206667    
36 17-6月8日 静 0.3339319       
37 7 月 18 日 8 静态 0.3286641       
38 8 月 1 日 静态 0.4390918      
39 八月 15 日 静态 0.3276667       
40 11 月 7 日 8 日静态 0.2446667       
41 17-6月 九静 0.3456627      
42 7 月 18 日 九静 0.2519814      
43 8 月 9 日 1 日静态 0.3807550      
44 8 月 15 日 9 日静态 0.3873333      
45 11 月 7 日九静态 0.1663333       
46 6 月 17 日至 10 日脉冲 0.4135023      
47 7 月 18 日 10 次脉冲 0.1921382       
48 8 月 1 日至 10 日脉冲 0.3898374       
49 8 月 15 日至 10 日脉冲 0.2700000       
50 11 月 7 日至 10 日脉冲 0.1216667       

输入(螺母)

结构(列表(日期=结构(c(3L,4L,1L,2L,5L,3L,4L,
1L, 2L, 5L, 3L, 4L, 1L, 2L, 5L, 3L, 4L, 1L, 2L, 5L, 3L, 4L, 1L,
2L, 5L, 3L, 4L, 1L, 2L, 5L, 3L, 4L, 1L, 2L, 5L, 3L, 4L, 1L, 2L,
5L, 3L, 4L, 1L, 2L, 5L, 3L, 4L, 1L, 2L, 5L), .Label = c("1-Aug",
“8 月 15 日”、“6 月 17 日”、“7 月 18 日”、“11 月 7 日”),类 =“因子”),湿地 = 结构(c(5L,
5L, 5L, 5L, 5L, 10L, 10L, 10L, 10L, 10L, 9L, 9L, 9L, 9L, 9L,
3L,3L,3L,3L,3L,2L,2L,2L,2L,2L,7L,7L,7L,7L,7L,6L,
6L, 6L, 6L, 6L, 1L, 1L, 1L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 8L, 8L,
8L, 8L, 8L), .Label = c("八", "五", "四", "九", "一",
“七”,“六”,“十”,“三”,“二”),类=“因子”),水文=结构(c(1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L,
1L), .Label = c("Pulsed", "Static"), class = "factor"), Nitrate = c(0.264728748,
0.180738787, 0.989591021, 0.656666667, 0.215, 0.213402705, 0.197166881,
0.477442378, 0.311, 0.333333333, 0.33692531, 0.205628403, 0.67319236,
0.551666667, 0.185333333, 0.329366831, 0.466474791, 0.455500298,
0.399333333, 0.113333333, 0.349796312, 0.361865927, 0.372171941,
0.291666667, 0.252666667, 0.277966745, 0.760953065, 0.717708344,
0.661, 0.208333333, 0.223203974, 0.365562124, 0.700613059, 0.475333333,
0.320666667、0.333931889、0.328664129、0.439091764、0.327666667、
0.244666667, 0.345662714, 0.251981433, 0.380755049, 0.387333333,
0.166333333、0.413502261、0.192138209、0.389837374、0.27、0.121666667
)), .Names = c("日期", "湿地", "水文", "硝酸盐"), class = "data.frame", row.names = c(NA,
-50L))
4

1 回答 1

4

没有你的数据很难回答(因为我通常会先测试它!),但我认为你可以aggregate通过 Date 和 Hydrology 计算 Nitrate 数据并计算平均值,然后使用geom_point不同的data.frame.

这行得通吗...

nutm <- aggregate( Nitrate ~ Date + Hydrology , data = nut , FUN = mean )

p <-ggplot(nut, aes(Date, Nitrate, shape = Hydrology)) +
  geom_point( data = nut , aes( fill = Wetland , group=Wetland ), colour="black", size=4)+
  scale_fill_manual(values=colvec) +
  scale_shape_manual(values=c(21,22))+
  facet_grid(. ~ Hydrology) +
  ylab ("Nitrate (mg/L) ") +
  geom_point( data = nutm , aes( x = Date , y = Nitrate) , color = "red" , fill = "red" , size = 4 ) +
  theme(legend.position="none",
        panel.background = element_rect(fill='white', colour='white'), 
        panel.grid = element_line(color = NA),
        panel.grid.minor = element_line(color = NA),
        panel.border = element_rect(fill = NA, color = "black"),
        axis.text.x  = element_text(size=10, colour="black"),  
        axis.title.x = element_text(vjust=0.1),
        axis.text.y = element_text(size=12, colour="black"),
        axis.title.y = element_text(vjust=0.3))

p

这给了我你的图表,每个日期都有一个红色的平均标记...... 在此处输入图像描述

于 2013-03-19T15:08:51.787 回答