используя несколько масштабов размера в ggplot

Я пытаюсь построить сюжет, который показывает переходы из одного класса в другой. Я хочу иметь круги, представляющие каждый класс, размер которого соответствует атрибуту класса, и стрелки от одного класса к другому, размер которых соответствует числу переходов от одного класса к другому.

В качестве примера:

library(ggplot2)
points <- data.frame( x=runif(10), y=runif(10),class=1:10, size=runif(10,min=1000,max=100000) )
trans <- data.frame( from=rep(1:10,times=10), to=rep(1:10,each=10), amount=runif(100)^3 )
trans <- merge( trans, points, by.x="from", by.y="class" )
trans <- merge( trans, points, by.x="to", by.y="class", suffixes=c(".to",".from") )
ggplot( points, aes( x=x, y=y ) ) + geom_point(aes(size=size),color="red") + 
    scale_size_continuous(range=c(4,20)) + 
    geom_segment( data=trans, aes( x=x.from, y=y.from, xend=x.to, yend=y.to, size=amount ),lineend="round",arrow=arrow(),alpha=0.5)

Я хотел бы иметь возможность масштабировать стрелки в масштабе, отличном от кругов. В идеале я бы хотел легенду с обеими шкалами, но я понимаю, что это невозможноиспользование двух масштабных цветовых градиентов на одном ggplot)

Есть ли более элегантный способ сделать это, чем применять произвольное масштабирование к базовым данным?

Ответы на вопрос(1)

Ваш ответ на вопрос