2013-08-27 81 views
0

重寫美學時當我在geom功能覆蓋xy,軸標籤是錯誤的。GGPLOT2軸標記以GEOM

樣本數據,偏移量包括在內,以便我們可以告訴我們正在策劃和A對B中的情節:

d=data.frame(A=runif(10),B=100+runif(10),C=200+runif(10)) 
g = ggplot(d,aes(A,B)) 
g + geom_point() 

一切有看起來不錯,但:

g + geom_point(aes(B,C)) 

地塊價值B對C,但軸標籤是A和B仍然是。我是否必須明確標註:

g+geom_point(aes(B,C))+xlab("B") + ylab("C") 

每次我這樣做?用這種方式重寫美學是一件壞事,我應該真的創建一個新的g對象?

+1

您能否解釋在哪種情況下需要這種情況?或者一個最小的例子?即你爲什麼不簡單做'g = ggplot(d,aes(B,C))+ geom_point()' – Bart

+1

如果你期望做這樣的事情,似乎最好不要在'ggplot'中指定aes,例如'g = ggplot(d); g + geom_point(aes(A,B)); g + geom_point(aes(B,C))'。 – Roland

+0

如果我有'g'躺在我認爲我可以重新使用它。美學的替代僅僅意味着爲情節添加更多的幾何? 'g + geom_point()+ geom_point(aes(y = Z2))+ geom_point(y = Z3)'? – Spacedman

回答

0

軸的默認標籤來自首先映射到美學的變量的名稱。在你的情況下,在原來的ggplot調用(存儲在g),你可以將x映射到A。即使沒有geom使用該特定映射,它也是第一個映射,因此設置軸的(默認)標籤。如您所述,您可以用xlab等覆蓋該默認值。

+4

或者重置默認映射'g + geom_point( )+ aes(B,C)' – baptiste