2017-01-25 7 views
1

私は視覚化に関するWickhamとGrolemundの "R for data science"の第1章に従っています。aes()の内側または外側aes()

私が試してみました:

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = "blue")) 

は青い色のすべての点でプロットを達成することを望んで、代わりに、私の驚きに、彼らはすべての赤でした!印刷されたバージョンのかSection 3.3 of the online versionで11ページで、青色のポイントを達成するための正しいコードを読んで、私は実際には、彼らは、手動であなたが持っている美学を設定すると述べている、それは

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), color = "blue") 

する必要があります発見し、 aes()関数の外側ではなく、対応するgeomの内部にgeom_point()を与えます。それはなぜそうですか?この動作の正確な説明は何ですか?実際、正しい構文が最初のコマンドの1つになるのは当然のようでした。この問題は、レイヤーや変数のスコープに関連していると思いますが、私はそれを理解できませんでした。誰かが私に餌を与えることができますか?

編集:申し訳ありませんが私の正しい宿題をしていない:これは、テキスト自体に対応するセクションの最後に提案されている...答えはまだ私を逃げる。

+0

美学は、データ要素に基づいて色を設定できます。それがデータ要素に関連しておらず、ジオメトリを色にしたい場合は、それを美学の外で行います。問題についての以前の投稿があります:http://stackoverflow.com/questions/11511911/difference-between-passing-options-in-aes-and-outside-of-it-in-ggplot2 –

+0

@ryanmありがとうコメント。それは少し助けてくれますが、もし私がそう言えば、私の答えは以下の問題を設定しているようです... –

答えて

1

この問題、具体的には、前述の2つのコマンドの出力の違いは、Hadley Wickham自身の第2版「ggplot2。データ解析のためのエレガントなグラフィックス」のセクション5.4.2で明示的に扱われています。例えば、colorのようなあなたのデータの変数を(aesの中に)マップすることができます。または、例えば "blue"のような一定の値に美的を設定することができます(aesの外にありますが、geom要素内に設定できます)。最初の例では、colorのような美的なマッピングでは、マップされた変数の値がすべて定数であるため、ggplot2は利用可能なすべての色(カラーホイール)の一様平均に基づいて色を選択します。選択した色が、マップするのに選択した一定の値と一致するのはなぜですか?より具体的には、コマンドを試してみると、元の質問の最初のコマンドとまったく同じ出力プロットが得られます:

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y =hwy, color = "foo")) 

関連する問題