13

ggplot2 でポイント サイズ オプションをいじった後、サイズが のaes()パラメーターの内側と外側の両方に渡される例に気付きましたgeom_point()Hadley のサイトの`geom_point() ページから:

p <- ggplot(mtcars, aes(wt, mpg))

# passed inside
p + geom_point(aes(size = qsec)) 
p + geom_point(aes(size = qsec)) + scale_area() 

# passed outside
p + geom_point(colour = "red", size = 3) 
p + geom_point(colour = "grey50", size = 4)

凡例に関しては、これらの動作が異なることがわかりました。中を通過aes()すると、凡例が表示されますが、サイズの異なるポイントが 2 つしかない場合でも、ブレークを設定する必要があります。そうしないと、2 つしか使用されていないにもかかわらず、5 つのポイント サイズの範囲が得られます。

また、渡されたサイズは理解できるほど意味がありません。を使用して相対的なサイズを指定し、range=c(min,max)ブレークをデフォルトの 5 ではなく 2 つのサイズに設定する必要があります。

の外でサイズを渡すaes()と、サイズは尊重されているように見えますが、プロットで凡例を取得できません。scale_sizescale_size_continuous、およびを試しましたが、scale_size_manual成功しませんでした。

ページからgeom_point()これがあります:

次の美学を geom_point で使用できます。美学は、aes 関数を使用してデータ内の変数にマップされます。geom_point(aes(x = var))

...

スケールは、変数が美学にどのようにマッピングされるかを制御し、各美学の後にリストされます。

[すべての美的オプションのリスト (形状、色、サイズなど)]

そのため、オプション(この質問のサイズですが、これは他の美学にとって意味があるはずです)の内側と外側がaes()結果にどのように影響するかはまだ明確ではありません.

4

1 に答える 1

16

内で指定aesすると、美学はデータ内の変数の値にマップされます。データと目に見える美学の間にはマッピングがあるため、そのマッピングを示す凡例があります。呼び出しの外ではaes、美学は特定の値に設定されているだけです。あなたが示す例では、サイズ(および色)はすべてのポイントで同じ値に設定されています。この場合、サイズ (または色) は (基になるデータに関して) 意味を伝えないため、凡例は必要ありません。

凡例に表示されている問題は、サイズが連続変数にマップされていることが原因です。この変数がデータで取る値が 2 つしかない場合がありますが、原則として、連続変数は任意の値を取ることができます。それが本当に 2 つの変数の選択である場合は、それを要因にします (元のデータまたは美的呼び出しaes(size=factor(qsec)).

于 2012-07-16T20:43:03.023 に答える