簡體   English   中英

用ggplot2將最大值指向stat_summary中線

[英]Point the max value in stat_summary mean line with ggplot2

我有這種數據

                 Time      Value  Type
1 2018-04-23 00:00:00 0.00000000 FALSE
2 2018-04-23 00:10:00 0.08971613 FALSE
3 2018-04-23 00:20:00 0.02626635 FALSE
4 2018-04-23 00:30:00 0.40684988 FALSE
5 2018-04-23 00:40:00 0.29159049 FALSE
6 2018-04-23 00:50:00 0.54625109 FALSE

然后這段代碼

graph <- ggplot(data, aes(x = Time, y = Value, colour = Type, group = Type)) +
  geom_point(size = 0.75, show.legend = FALSE) +
  stat_summary(fun.y = mean, geom = "line", size = 0.5, aes(colour = Type), show.legend = FALSE)

ggsave("test.png", width = 6.4, height = 4, dpi = 200, units = "in")

輸出此圖像。

在此處輸入圖片說明

但是我找不到通過summary_stat強調每個系列中最大值的方法。 我懷疑fun.ymax是關鍵,但沒有成功。

有人可以提出一個主意嗎?

您可以使用stat_summary_bin並說服您只有一個容器。 geom_rug與此geom_rug工作。

ggplot(mtcars, aes(x = cyl, y = mpg)) + 
geom_point() + 
stat_summary_bin(fun.y  = max, geom = "rug", breaks = range(mtcars$cyl), colour = "red", sides = "l")

如果您想要一條直線,則需要geom_hline ,它與stat_summary不能很好地配合,因此您需要使用以下代碼預先計算最大值

ggplot(...) +
  geom_hline(aes(yintercept = max), data %>% group_by(Type) %>% summarise(max = max(Value))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM