gpt4 book ai didi

r - 如何在R中的分面图中标记最大值点?

转载 作者:行者123 更新时间:2023-12-03 20:30:41 26 4
gpt4 key购买 nike

我读到有人有类似的问题( ggplot2 and facet_grid : add highest value for each plot ),但我仍然无法解决我的问题。

以这个为例:

data.frame(x=rnorm(100),y=rnorm(100),z=rep(c("A","B"))) %>% ggplot(aes(x,y)) + geom_point() + facet_wrap(~z)

faceted plot with randomized points

我只想标记每个图中的最大 y 值点。我想用 + geom_label_repel(aes(label=y))但我最终标记了所有点。

我也试过 + geom_label(data=.[.$y==max(.$y),], aes(label=y))我想到的地方 .应该是 placeholder for the argument left of the pipe operator但这样做是行不通的。

奇怪的注意事项:我也想在不将数据框分配给全局环境中的变量的情况下执行此操作,因此我使用了管道运算符。我们可以在不分配任何变量的情况下做到这一点吗?

最佳答案

您可以通过过滤原始数据集并将其作为“数据”参数传递给文本几何体来实现。看起来有点奇怪(而且你必须使用“.”运算符来引用 dplyr 链的数据集,我个人不喜欢它),但它确实有效,而且你不必从外部引用数据。

set.seed(1222)

data.frame(x=rnorm(100),y=rnorm(100),z=rep(c("A","B"))) %>%
ggplot(aes(x,y)) + geom_point() +
geom_label(data = . %>% group_by(z) %>% filter(y == max(y)), aes(label = sprintf('%0.2f', y)), hjust = -0.5) +
facet_wrap(~z)

enter image description here

关于r - 如何在R中的分面图中标记最大值点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48351153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com