przy użyciu skal o wielu rozmiarach w ggplot

Próbuję skonstruować wykres pokazujący przejścia z jednej klasy do drugiej. Chcę, aby koła reprezentowały każdą klasę o rozmiarze zależnym od atrybutu klasy, a strzałki od jednej klasy do drugiej, o wielkości zależnej od liczby przejść z jednej klasy do drugiej.

Jako przykład:

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)

Chciałbym móc przeskalować strzałki w innej skali niż koła. W idealnej sytuacji chciałbym mieć legendę z obiema skalami, ale rozumiem, że może to nie być możliwe (przy użyciu dwóch gradientów kolorów skali na jednym ggplot)

Czy jest to bardziej elegancki sposób niż zastosowanie arbitralnego skalowania do danych bazowych?

questionAnswers(1)

yourAnswerToTheQuestion