如何在抖动图中仅绘制一个文本?

JAd*_*del 2 r ggplot2

我只想绘制一次特定簇的平均值文本。

\n

所以我遵循了情节:\n在此输入图像描述

\n

但我想要的是这样的:

\n

在此输入图像描述

\n

复制代码:

\n
price_l <- rep(c(\'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \n             \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \n             \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \n             \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac-\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\',\'\xe2\x82\xac\', \'\xe2\x82\xac\', \n             \'\xe2\x82\xac\', \'\xe2\x82\xac\',\'\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac\', \'\xe2\x82\xac\'),100)\n\navg_r <- rep(c(4.5, 3.5, 4.0, 4.0, 4.0, 3.5, 4.5, 4.0, 3.0, 4.0, \n           3.0, 5.0, 4.5, 4.0, 3.0,\n           3.5, 4.5, 3.5, 3.5, 4.0, 3.0, 4.0, 4.0, 2.5, 4.5),100)\n\n\nsub.df <- data.frame(price_l, avg_r)\n\n\nsub.df %>%    \n  group_by(price_l) %>%\n  mutate(mean = mean(avg_r)) %>%\n  ungroup() %>%\n  ggplot(sub.df, mapping=aes(price_l, avg_r), na.rm=T) +\n  geom_jitter(aes(colour = price_l)) +\n  geom_text(aes(label = sprintf("%.2f",mean)))\n
Run Code Online (Sandbox Code Playgroud)\n

Tar*_*Jae 5

我们可以使用stat_summary(aes(label = ..y..), geom = "text", fun = mean, color="black", size = 6, fontface = 2)

sub.df %>%    
  group_by(price_l) %>%
  mutate(mean = mean(avg_r)) %>%
  ungroup() %>%
  ggplot(sub.df, mapping=aes(price_l, avg_r), na.rm=T) +
  geom_jitter(aes(colour = price_l)) +
  stat_summary(aes(label = ..y..), geom = "text", fun = mean, color="black", size = 6, fontface = 2)
  
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述