9

ggplot を使用して比例面積記号をプロットするにはsqrt()、真の比例を実現するために使用する必要があるようです。

require(ggplot2)

t <- data.frame(x=rep(c(1:5),5), y=rep(c(1:5),each=5), s=round(seq(1,100,length.out=25)))
t
p <- ggplot(data=t, aes(x=x,y=y))

# direct size-to-variable mapping
p + geom_point(aes(size=s), pch=22, fill='#0000FF75', col=NA) +
  scale_size(range = c(1, 40)) +
  geom_text(data=t, aes(x=x,y=y,label=s),size=3,vjust=1)

# proportional area size-to-variable mapping
p + geom_point(aes(size=sqrt(s)), pch=22, fill='#0000FF75', col=NA) +
  scale_size(range = c(1, 40)) +
  geom_text(data=t, aes(x=x,y=y,label=s),size=3,vjust=1)

ここに画像の説明を入力

ご覧のとおり、元のデータを表示するためにラベルが必要な場合、ラベルはルート化されています。scale_size オプションを試してみましたが、何も機能しません。誰もがこれに対する修正を知っていますか、それとも比例領域サイズマッピングを達成するためのあいまいな設定がありますか?

前もって感謝します。

4

1 に答える 1

9

scale_area代わりに使用できますscale_size

p + geom_point(aes(size=s), pch=22, fill='#0000FF75', col=NA) +
  scale_area(range = c(1, 40)) +
  geom_text(data=t, aes(x=x,y=y,label=s),size=3,vjust=1)

ここに画像の説明を入力してください


scale_area私は同意します、それは完全に明白ではありませんが、それもはっきりしていません-のヘルプで使用している例があります?scale_size

于 2012-09-01T13:28:29.683 に答える