如何正确 select 将标签放置在分面图 Y 轴最高点的顶部?
How do I correctly select the label to place on top of the highest point of the Y-axis of a facet-separated plot?
我有一个图,每个组都按方面分开。在 Y 轴的最高点我想放置相应的 Y 值,为此我使用了 ggtext
包和 geom_richtext()
函数。尽管我在 geom_richtext()
函数中使用了 group = Group
,但标签并没有像我预期的那样出现。
在 MWE 中,我希望 A、B 和 C 组的面分别具有 100、500 和 1000 的值,出现在每个峰的顶部。有人可以帮我提个建议吗?
library(ggplot2)
library(ggtext)
Group <- c("A", "B", "C")
Time <- 0:10
DF <- expand.grid(Time = Time,
Group = Group)
DF$Y <- c(rep(1,5), 100, rep(1,5),
rep(1,5), 500, rep(1,5),
rep(1,5), 1000, rep(1,5))
ggplot(data = DF,
aes(x = Time,
y = Y)) +
geom_line() +
facet_grid(Group ~ .) +
geom_richtext(aes(label = max(Y),
group = Group)) +
theme_bw()
一个选项是将过滤后的数据集传递给 geom_richtext
,其中仅包含每个 Group
:
的最大值
library(ggplot2)
library(ggtext)
library(dplyr)
ggplot(data = DF,
aes(x = Time,
y = Y)) +
geom_line() +
facet_grid(Group ~ .) +
geom_richtext(data = DF %>% group_by(Group) %>% slice_max(Y, n = 1), aes(label = Y,
group = Group)) +
theme_bw()
我有一个图,每个组都按方面分开。在 Y 轴的最高点我想放置相应的 Y 值,为此我使用了 ggtext
包和 geom_richtext()
函数。尽管我在 geom_richtext()
函数中使用了 group = Group
,但标签并没有像我预期的那样出现。
在 MWE 中,我希望 A、B 和 C 组的面分别具有 100、500 和 1000 的值,出现在每个峰的顶部。有人可以帮我提个建议吗?
library(ggplot2)
library(ggtext)
Group <- c("A", "B", "C")
Time <- 0:10
DF <- expand.grid(Time = Time,
Group = Group)
DF$Y <- c(rep(1,5), 100, rep(1,5),
rep(1,5), 500, rep(1,5),
rep(1,5), 1000, rep(1,5))
ggplot(data = DF,
aes(x = Time,
y = Y)) +
geom_line() +
facet_grid(Group ~ .) +
geom_richtext(aes(label = max(Y),
group = Group)) +
theme_bw()
一个选项是将过滤后的数据集传递给 geom_richtext
,其中仅包含每个 Group
:
library(ggplot2)
library(ggtext)
library(dplyr)
ggplot(data = DF,
aes(x = Time,
y = Y)) +
geom_line() +
facet_grid(Group ~ .) +
geom_richtext(data = DF %>% group_by(Group) %>% slice_max(Y, n = 1), aes(label = Y,
group = Group)) +
theme_bw()