在ggplot

时间:2017-10-24 17:03:04

标签: r plot ggplot2 significance

我正在为我仍在收集数据的数据集设置绘图模板。目前,我的代码设置为按站点/处理/日期汇总数据,并获取绘图的平均值和标准误差。

我似乎无法找到一种方法让ggplot也输出有效符号(目前在单独的函数中运行anova)。如果可能的话,我宁愿设置代码,以便它可以运行anova并将结果(显着性)输出到绘图上,而无需手动添加每个有效值。

目前,我对ggplot的输入是平均值和标准错误的列表。有谁知道如何设置ggplot来测试重要性并输出结果?

我目前的绘图代码模板:

  • 数据集按治疗,日期和站点汇总进行计算 手段和SE;
  • AA是数据框32x5;
  • 列是治疗,日期,站点,平均值(X),标准误差(SE)。

代码数据:

AA <- aggregate(cbind(D$NH4.K2SO4) ~ D$treatment + D$Date + D$Site, FUN = "mean")
ASD <- aggregate(cbind(D$NH4.K2SO4) ~ D$treatment + D$Date + D$Site, FUN = "sd")
Length <- aggregate(cbind(D$NH4.K2SO4) ~ D$treatment + D$Date + D$Site, FUN = "length")

structure(list(Treatment = structure(c(2L, 7L, 1L, 2L, 7L, 1L, 
1L, 1L, 1L, 2L, 7L, 1L, 2L, 7L, 1L, 1L, 1L, 1L, 2L, 7L, 2L, 7L, 
1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Ancillary", "Control", "Lysim", 
"Lysim 2", "Lysim 3", "Lysim 4", "Snowfence"), class = "factor"), 
    Date = structure(c(2L, 2L, 5L, 10L, 10L, 11L, 14L, 20L, 24L, 
    1L, 1L, 6L, 8L, 8L, 9L, 15L, 18L, 22L, 2L, 2L, 3L, 3L, 4L, 
    7L, 12L, 13L, 19L, 23L), .Label = c("3/29/2017", "3/30/2017", 
    "5/31/2017", "6/1/2017", "6/26/2017", "6/27/2017", "6/28/2017", 
    "6/3/2017", "6/4/2017", "6/6/2017", "6/7/2017", "6/8/2017", 
    "7/19/2017", "7/20/2017", "7/21/2017", "7/26/2017", "7/4/2017", 
    "8/10/2017", "8/11/2017", "8/12/2017", "8/17/2017", "8/23/2017", 
    "8/24/2017", "8/25/2017", "8/31/2017"), class = "factor"), 
    Site = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L), .Label = c("Hydric", "Mesic", "Xeric"), class = "factor"), 
    X = c(7.43267638333333, 0.790914962333333, 32.7158845425, 
    39.61425484125, 50.811531665, 105.29598620625, 40.95814313875, 
    11.1499641395, 5.8066056215, 0.970978786333333, 0.498484719666667, 
    25.91819105925, 23.5674717097143, 30.5854228021429, 21.67689724125, 
    16.431000924875, 36.63930367125, 16.228933801, 2.06913470133333, 
    11.091178665, 12.246150595875, 15.2033620815, 32.612539247875, 
    19.31612232475, 25.19268196025, 20.321271819, 10.987626749625, 
    13.80181256875), SE = c(7.43267638333333, 0.45237767615669, 
    7.17697888847507, 6.516371225529, 7.30540654221043, 37.2883238319644, 
    9.49039191212815, 2.48045614501937, 0.947770136958039, 0.807431277787536, 
    0.498484719666667, 8.31060998160046, 3.92447408041183, 8.21893284470945, 
    3.19749050842153, 2.49064179501535, 6.35501411297307, 3.6706622694705, 
    1.5543525013086, 4.42138133279728, 2.14838219321163, 4.21206015374826, 
    8.98165777115019, 3.42707918986775, 11.1234465728408, 5.76575917511913, 
    2.05024630936161, 4.30325294154136)), .Names = c("Treatment", 
"Date", "Site", "X", "SE"), row.names = c(1L, 2L, 3L, 4L, 5L, 
6L, 7L, 10L, 12L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 
23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L), class = "data.frame")   

ggplot(AA, 
       aes(Date, X, color = Site, shape = Treatment))+
   geom_point(size = 10)+
   geom_errorbar(aes(ymin = X - SE, ymax = X + SE),
                 width = 0.2, lwd = 3)+
   xlab("")+
   ylab("NH4 (ug NH4-N per g dry soil)")+
   ggtitle("AGGIE NH4 2017")+
   ylim(0, 150)+
   theme_bw() +
   theme(axis.line = element_line(colour = "black"),
         panel.grid.major = element_blank(),
         panel.grid.minor = element_blank(),
         panel.border = element_blank(),
         panel.background = element_blank(),
         axis.title.y= element_text(vjust = 4.3),
         axis.text = element_text(size = 45))+
   theme(text = element_text(size = 50),
         axis.text.x= element_text(angle = 45, vjust = 0.4),
         axis.text.y= element_text(angle = 90, hjust = 0.4),
         axis.ticks = element_line(size = 5),
         axis.ticks.length = unit(.75, "cm"))+
   theme(legend.direction = 'vertical', 
         legend.key = element_rect(size = 1),
         legend.key.size = unit(4, 'lines'))

ggsave("NH4 K2SO4 2017.tiff", 
       scale = 5, width = 8, height = 4, units = "in")    

这是我当前的图形,没有重要符号:

current graphic

我想合并NH4.aov <- with(D, aov(D$NH4.K2SO4 ~ treatment * Site * Date))并让它在图表上的符号之间打印显着(p <0.05)。我想首先标记具有显着差异的具体日期,并且如果我要将X和SE更改为另一个变量,即使用手动输入每个有效值,则使代码有效。

0 个答案:

没有答案