2

2 つのグラフを描画しますが、比較のために両方のドットの縮尺を同じにしたい

geofirmen<-data.frame(lon=c(1,2,3), lat=c(1,2,3), freqplz=c(5,10,15))
ggplot(data= geofirmen) + geom_point(aes(x = lon, y = lat, size=freqplz, alpha=.7), colour = "dodgerblue4")

geofirmen<-data.frame(lon=c(1,2,3), lat=c(1,2,3), freqplz=c(5,10,20))
ggplot(data= geofirmen) + geom_point(aes(x = lon, y = lat, size=freqplz, alpha=.7), colour = "dodgerblue4")

見た目は同じだが小さい 見た目は同じだけど大きい

大きいスケールのレジェンドスケールを両方持ってほしいです。注意、私は地理的な地図を描いているので、グラフの比率を変更する必要はありませんが、freqplz のサイズは 10 の値などに対して同じでなければなりません。これはどのように機能しますか?

4

1 に答える 1

1

本当に 2 つの別々のプロットが必要な場合はscale_size()、両方のプロットに同じ定義を使用して (両方のコマンドに追加ggplot())、両方のプロットの値を定義breaks=および設定limits=することができます。

+ scale_size(breaks=c(5,10,15,20),limits=c(0,20))

別の解決策は、グループ化列を含む 1 つのデータ フレームにすべてのデータを配置することです (group例のデータ)。次にfacet_wrap()、各レベルのファセットを作成するために追加します。この場合、凡例は 1 つだけになります。と軸coord_fixed()の間の縦横比を固定するために使用されます。xy

geofirmen.new<-data.frame(lon=c(1,2,3,1,2,3), lat=c(1,2,3,1,2,3), 
    freqplz=c(5,10,15,5,10,20),group=c(1,1,1,2,2,2))

ggplot(data= geofirmen.new,aes(x = lon, y = lat, size=freqplz)) + 
    geom_point(alpha=.7, colour = "dodgerblue4") + 
    facet_wrap(~group,ncol=1) + coord_fixed()

ここに画像の説明を入力

于 2013-01-14T15:13:15.793 に答える