如何将徒手画的红色圆圈添加到ggplot2graphics中?

去年我发布了一个用户活动分析到元堆栈溢出 ,包括一系列ggplot2图。 然而, Wooble通过指出我的阴谋有一个致命的缺陷,

在这里输入图像说明

写意的红色圆圈在Meta Stack Overflow的任何情节中当然是必要的 ,但令我沮丧的是,我无法find将它们添加到ggplot2图表的方法。 我知道如何添加一个圈子 ,但是这样一个人造的构造没有个性,永远也不会通过元素。

作为一个可重复的例子,考虑一下随着时间的推移,我自己的回答活动,使用堆栈包创build的情节 :

# devtools::install_github("dgrtwo/stackr") library(ggplot2) library(dplyr) library(lubridate) library(stackr) answers <- stack_users(712603, "answers", num_pages = 10, pagesize = 100) answers_per_month <- answers %>% mutate(month = round_date(creation_date, "month")) %>% count(month) ggplot(answers_per_month, aes(month, n)) + geom_line() 

没有徒手画

这个情节足够丰富,但没有灵魂 。 我怎样才能将写意的红色圆圈添加到它?

你可以使用我的ggfreehand包,它提供了geom_freehand不小心遗漏的geom_freehand层。

例如,如果您想在上面的图中圈出前两个最活跃的月份,则可以按照以下代码进行操作:

 top_2_months <- answers_per_month %>% top_n(2) library(ggfreehand) ggplot(answers_per_month, aes(month, n)) + geom_line() + geom_freehand(data = top_2_months) 

徒手画

就这样,这个情节现在值得在Meta Stack Overflow上发布。

geom_freehand图层需要额外的选项来定制圆,包括radiusnoisiness 。 你也可以让这个圆圈不是红的,就好像你曾经想做的事情一样。

 p <- ggplot(answers_per_month, aes(month, n)) + geom_line() p + geom_freehand(data = top_2, radius = .5) p + geom_freehand(data = top_2, noisiness = 10) p + geom_freehand(data = top_2, noisiness = 1) p + geom_freehand(data = top_2, color = "blue") 

在这里输入图像说明