问题:
我想用曲线连接点,而曲线大小根据其各自端点的大小沿路径调整。
可重复示例:
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)
到目前为止,这么好。现在我想根据以下规则添加连接点的曲线:
df$order
)aes(size=value)
创建的终点尺寸决定了各自的曲线大小。 我想要实现的目标或多或少(对于我可怕的MS绘画技巧而言......很遗憾,规则3在此草图中被违反......):
将aes()
传递给曲线也很高兴,例如colour
......我一直在玩geom_curve
和geom_segment
,但我没有走得太远......
整个练习用于重现this惊人的信息图。
答案 0 :(得分:0)
df %>%
mutate( x1 = c(NA, x[1:(nrow(df)-1) ] )) %>%
mutate( x2 = c(NA, x[2:(nrow(df)) ] )) %>%
mutate( y1 = c(NA, y[1:(nrow(df)-1) ] )) %>%
mutate( y2 = c(NA, y[2:(nrow(df)) ] )) ->df
df %>%
ggplot(aes(x=x, y=y,size=value)) +
geom_point(alpha=0.5) +
geom_curve(aes(x = x1, xend = x2, y = y1, yend = y2),
curvature = .25, size = 1)