Проблема:
Я хочу соединить точки с кривыми, в то время как размер кривой настраивается вдоль ее траектории в соответствии с размером соответствующих конечных точек.
Воспроизводимый пример:
library("tidyverse")
df <- data.frame(x=c(1,3,2),
y=c(1,4,3),
value=c(2,10,15),
order=c(1,2,3))
ggplot(df) +
geom_point(aes(x=x,
y=y,
size=value),
alpha=0.5)
Пока все хорошо.Теперь я хотел бы добавить кривые, соединяющие точки, в соответствии со следующими правилами:
- Кривые должны связывать точки в хронологическом порядке 1 - 2 - 3 (в соответствии с
df$order
, которыйis) - Размеры конечной точки, созданные с помощью
aes(size=value)
, определяют соответствующие размеры кривой. - Размер кривой увеличивается / уменьшается приятным, сглаженным способом.
Я бы хотел достичь более или менее этого (извините за мои ужасные навыки рисования MS ... к сожалениюНа этом эскизе нарушается правило 3 ...):
Было бы также хорошо иметь возможность передать aes()
кривым,такие как colour
... Я играл с geom_curve
и geom_segment
, но я не очень далеко ...
Все упражнение служит для воспроизведения этого удивительная инфографика.