2
我正在构建一个非常简单的气泡图,只有2个观察值。 我想添加一个tanget到每个气泡以后添加标签。接触点应位于每个气泡的顶部或底部。如何添加切线到气泡
例子:
library("ggplot2")
df <- data.frame(group=c(FALSE,TRUE),
value=c(5,30))
ggplot(df) +
geom_point(aes(x=group,
y=0,
size=value,
fill=group),
shape=21) +
scale_size_area(max_size=25) +
theme_void() +
theme(legend.position = "none")
我想实现的是:
我最好的猜测是如何做到这一点会添加类似:
...
annotate("segment",
x = 0.2, xend = 1,
y = pointOfContact_1, yend = pointOfContact_1) +
annotate("segment",
x = 2.8, xend = 2,
y = pointOfContact_2, yend = pointOfContact_2)
但是,我不知道如何计算接触点(y值)。 纵观ggplot_build()
目前无法帮到我...
任何想法?
'geom_point'将规模剧情大小变化时。一种解决方案是使用'geom_polygon'来代替圆圈,然后可以可靠地计算出接触点(中心+ - 半径)。 – Axeman
mh ...如果不能用'geom_point'完成,也许'ggforce :: geom_circle()'是比'geom_polygon'更简单的方法' –
是的。这比处理不断变化的结垢要少得多。 – Axeman