2017-01-25 36 views
1

我上可視化以下的「數據科學R」韋翰和Grolemund的第1章。審美內部或外部的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

美學可以根據數據元素設置顏色。如果它與數據元素沒有關係,並且只是想讓geom成爲一種顏色,那麼在美學之外就可以做到這一點。這裏是關於此事的以前的帖子:http://stackoverflow.com/questions/11511911/difference-between-passing-options-in-aes-and-outside-of-it-in-ggplot2 –

+0

@ryanm謝謝你的評論。它確實有一點幫助,但是,如果我可以這樣說,我的回答似乎就成了問題...... –

回答

1

Hadley Wickham本人的第二版「ggplot2。用於數據分析的優雅圖形」第二版5.4.2節明確地討論了這個問題,更具體地說是兩個提到的命令的輸出差別:無論是你可以將數據變量映射(內aes),以審美的,例如,color,或者您可以設置(外aes,但geom元素中)的審美恆定值,「藍」,例如。在第一種情況下,映射一個審美的,如color,GGPLOT2選擇基於一種所有可用的顏色(在colorwheel)均勻的平均的顏色,因爲映射變量的值都是常數;爲什麼選擇的顏色應該與您選擇映射的常量值一致?更明確地說,如果您嘗試命令:

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

您將得到與原始問題的第一個命令完全相同的輸出圖。