Verwenden mehrerer Größenmaßstäbe in einem ggplot
Ich versuche eine Handlung zu konstruieren, die Übergänge von einer Klasse zur anderen zeigt. Ich möchte Kreise, die jede Klasse repräsentieren, deren Größe einem Klassenattribut entspricht, und Pfeile von einer Klasse zur anderen, die der Anzahl der Übergänge von einer Klasse zur anderen entsprechen.
Als Beispiel:
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)
Ich möchte die Pfeile in einem anderen Maßstab als die Kreise skalieren können. Idealerweise hätte ich gerne eine Legende mit beiden Maßstäben, aber ich verstehe, dass dies möglicherweise nicht möglich ist (unter Verwendung von zwei Skalenfarbverläufen auf einem ggplot)
Gibt es eine elegantere Möglichkeit, als die zugrunde liegenden Daten willkürlich zu skalieren?