R 如何将手绘红色圆圈添加到ggplot2图形?

R 如何将手绘红色圆圈添加到ggplot2图形?,r,ggplot2,R,Ggplot2,去年我发布了一系列ggplot2图表。然而,他指出我的阴谋有一个致命的缺陷,这让我感到非常羞愧: 手绘红色圆圈,但令我沮丧的是,我找不到将它们添加到ggplot2图形中的方法。我知道怎么做,但这样一个人工构造并没有个性,也永远不会通过元测试 作为一个可重复的例子,考虑我自己的回答活动随时间的情节,使用包创建: #devtools::安装_github(“dgrtwo/stacker”) 图书馆(GG2) 图书馆(dplyr) 图书馆(lubridate) 图书馆(堆垛机) 回答% 计数(月)

去年我发布了一系列ggplot2图表。然而,他指出我的阴谋有一个致命的缺陷,这让我感到非常羞愧:

手绘红色圆圈,但令我沮丧的是,我找不到将它们添加到ggplot2图形中的方法。我知道怎么做,但这样一个人工构造并没有个性,也永远不会通过元测试

作为一个可重复的例子,考虑我自己的回答活动随时间的情节,使用包创建:

#devtools::安装_github(“dgrtwo/stacker”)
图书馆(GG2)
图书馆(dplyr)
图书馆(lubridate)
图书馆(堆垛机)
回答%
计数(月)
ggplot(每个月的答案,aes(月,n))+geom线()

这个情节内容丰富,但没有灵魂。如何向其中添加手绘红色圆圈?

您可以使用我的软件包,该软件包提供了ggplot2中被疏忽忽略的
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)

OT评论。(我投了反对票。)ggplot2软件包的一个不足之处是为
?层
提供了足够的帮助页面。尤其令人恼火的是,其他帮助页面中有如此多的链接指向该页面。您显然理解ggplot2层范例。既然您已经让我们眼花缭乱,我可以请求您下一次浪费的时间是提交一个扩展的图层页吗?不要忘记使用
set.seed
使您的徒手画圆的形状无法复制:
set.seed(示例(0:.Machine$integer.max,size=1))
。(请确保您有足够的内存,否则请使用此低内存选项:
set.seed(as.integer(runif(1,0,.Machine$integer.max))
)@ryanthonpson,但这不起作用!如果用户之前设置了种子,则该
sample
操作将具有确定性,并且仍然是可复制的!(相反,您可以将其设置为当前时间!)是的,您完全正确。我试图在愚人节的评论中尽可能多地插入错误和谩骂。例如,第一个种子方法将创建一个包含所有正整数的巨大整数向量,仅用于从中采样一个数字,而浮点解决方案不一定保证均匀采样。“如果评论中有任何部分不是错误,那就是错误。”BondedDust我必须尝试沿着这些思路。不过,我并不十分乐观。我也会对这个问题投赞成票,但对评级系统来说,为同一个主题两次打分似乎有点不公平:——)
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)
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")