Я строю очень простую диаграмму с двумя наблюдениями. Я хотел бы добавить к каждому пузырю добавку, чтобы добавить метки позже. Точка контакта должна находиться в верхней или нижней части каждого пузыря.Как добавить тангенсы в пузыри
Пример:
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