如何在 R 上为每个方面(条形图)注释不同的值?
How to annotate different values for each facet (bar plot) on R?
我想知道如何在我的条形图中注释每个方面。现在,我正在使用 geom_signif 函数,除了它将一个方面的注释复制到另一个方面之外,它工作得很好。
我的代码是这样的:
geom_signif(annotation = c("p=0.01"),
y_position = c(9), xmin = c(2), xmax = c(3))
我的条形图:
请指教。我在这里阅读了一些类似的解决方案,尝试了其他一些方法,但我似乎仍然无法弄清楚..这是迄今为止我得到的最接近和最简单的解决方案,除了我想要 2 个不同的注释(标记为本例中的 p 值 -I 运行 方差分析)在各个方面。
这是一个通过手动解构绘图并使用新注释重建的示例。我理解它,因为你想要每个图的手动文本注释。这个(非常手动的)解决方案基于另一个答案,,这可能正是您正在寻找的。
df <- data.frame(iris,type = c(1,2))
## Construct your plot exactly as you have already done
## Annotations are replicated.
myplot <- ggplot(df, aes(x=Species,y = Sepal.Length)) +
geom_boxplot() +
facet_grid(.~type) +
geom_signif(annotation = c("foo"),xmin = 1, xmax = 2,y_position = 7.5)
myplot
## Disassemble plot
myplot2 <- ggplot_build(myplot)
myplot2$data[[2]]
x xend y yend annotation group PANEL shape colour textsize angle hjust vjust alpha family fontface lineheight
1 1 1 7.392 7.500 foo 1 1 19 black 3.88 0 0.5 0 NA 1 1.2
2 1 2 7.500 7.500 foo 1 1 19 black 3.88 0 0.5 0 NA 1 1.2
3 2 2 7.500 7.392 foo 1 1 19 black 3.88 0 0.5 0 NA 1 1.2
4 1 1 7.392 7.500 bar 1 2 19 black 3.88 0 0.5 0 NA 1 1.2
5 1 2 7.500 7.500 bar 1 2 19 black 3.88 0 0.5 0 NA 1 1.2
6 2 2 7.500 7.392 bar 1 2 19 black 3.88 0 0.5 0 NA 1 1.2
linetype size
1 1 0.5
2 1 0.5
3 1 0.5
4 1 0.5
5 1 0.5
6 1 0.5
## Note there are 6 observations, 3 for each "PANEL".
## Now, change the annotation on each "PANEL".
myplot2$data[[2]]$annotation <- c(rep("foo",3),rep("bar",3))
## Reconstruct plot
myplot3 <- ggplot_gtable(myplot2)
plot(myplot3)
我想知道如何在我的条形图中注释每个方面。现在,我正在使用 geom_signif 函数,除了它将一个方面的注释复制到另一个方面之外,它工作得很好。
我的代码是这样的:
geom_signif(annotation = c("p=0.01"),
y_position = c(9), xmin = c(2), xmax = c(3))
我的条形图:
请指教。我在这里阅读了一些类似的解决方案,尝试了其他一些方法,但我似乎仍然无法弄清楚..这是迄今为止我得到的最接近和最简单的解决方案,除了我想要 2 个不同的注释(标记为本例中的 p 值 -I 运行 方差分析)在各个方面。
这是一个通过手动解构绘图并使用新注释重建的示例。我理解它,因为你想要每个图的手动文本注释。这个(非常手动的)解决方案基于另一个答案,
df <- data.frame(iris,type = c(1,2))
## Construct your plot exactly as you have already done
## Annotations are replicated.
myplot <- ggplot(df, aes(x=Species,y = Sepal.Length)) +
geom_boxplot() +
facet_grid(.~type) +
geom_signif(annotation = c("foo"),xmin = 1, xmax = 2,y_position = 7.5)
myplot
## Disassemble plot
myplot2 <- ggplot_build(myplot)
myplot2$data[[2]]
x xend y yend annotation group PANEL shape colour textsize angle hjust vjust alpha family fontface lineheight 1 1 1 7.392 7.500 foo 1 1 19 black 3.88 0 0.5 0 NA 1 1.2 2 1 2 7.500 7.500 foo 1 1 19 black 3.88 0 0.5 0 NA 1 1.2 3 2 2 7.500 7.392 foo 1 1 19 black 3.88 0 0.5 0 NA 1 1.2 4 1 1 7.392 7.500 bar 1 2 19 black 3.88 0 0.5 0 NA 1 1.2 5 1 2 7.500 7.500 bar 1 2 19 black 3.88 0 0.5 0 NA 1 1.2 6 2 2 7.500 7.392 bar 1 2 19 black 3.88 0 0.5 0 NA 1 1.2 linetype size 1 1 0.5 2 1 0.5 3 1 0.5 4 1 0.5 5 1 0.5 6 1 0.5
## Note there are 6 observations, 3 for each "PANEL".
## Now, change the annotation on each "PANEL".
myplot2$data[[2]]$annotation <- c(rep("foo",3),rep("bar",3))
## Reconstruct plot
myplot3 <- ggplot_gtable(myplot2)
plot(myplot3)