私はいくつかのを偶然見つけプロジェクトのためと偶然の瞬間にggplot2でいくつかの分析をやっているとの組み合わせで、AES()にドル記号表記で変数を渡すとき説明できない行動aes(x = cyl, ...)
と書くと、プロットはaes(x = mtcars$cyl, ...)
を使って同じ変数を渡すと、それとは違って見えます。 facet_grid(am ~ .)
を削除すると、両方のグラフが再び同じになります。以下のコードは、同じ動作を生成し、私のプロジェクトでのコードの後にモデル化されています。ここでは問題奇妙な(私にとっては)facet_grid()またはfacet_wrap()
library(dplyr)
library(ggplot2)
data = mtcars
test.data = data %>%
select(-hp)
ggplot(test.data, aes(x = test.data$cyl, y = mpg)) +
geom_point() +
facet_grid(am ~ .) +
labs(title="graph 1 - dollar sign notation")
ggplot(test.data, aes(x = cyl, y = mpg)) +
geom_point()+
facet_grid(am ~ .) +
labs(title="graph 2 - no dollar sign notation")
は、グラフ1の画像である:ここで
はグラフ2の画像です:
は、私が代わりにaes
のaes_string
を使用して文字列として変数名を渡すこの問題を回避できることがわかったが、私はggplotがそのように動作している理由を理解したいと思います。この問題は同様の試みとしてfacet_wrap
で発生します。事前に任意の助け
Thxをたくさん!私はきちんと...
短い答えは:「決して* aes()」で '$'を使用していない – baptiste
^_ ^私のグラフが突然奇妙に見える今日私が得た、私はもうやりません。それでも私はこの問題や行動を以前に経験したことがないので、何が起こっているのか理解したいと思います。 – Christoph
ggplotがプロットを作成するときに、各レイヤーのデータセットをグループに分割します(美学とファセットによって定義されます)。このグループ化を信頼できるようにするには、単一のdata.frameからの変数が必要です。そうでないと、ggplotはファセットファクタと残りのマッピングの順序を変えることになります。 – baptiste