2014-10-28 72 views
-1

讓我先介紹一下我的數據集和初步結果,以便更好地理解我的問題。我的數據集的樣子:爲多個數據子集製作散點圖

Place  Species  Size  Conc. 
A   BT   24  0.2 
A   ST   76  1.4 
... 
B   BT   45  1.2 
B   ST   21  0.7 
... 

我想在每個Place做出的Size散點圖對Conc.每個Species。我做了什麼用ggplot2作出如下圖:

scatterplot <- ggplot(mydata, aes(x = Size, y = Conc, color = Species)) + 
    geom_point(shape = 1) 

雖然由不同顏色的品種羣這種圖形繪製,它總結了數據集中的所有數據,並未能爲繪製不同的地方。

我想下面

scatterplot <- ggplot(mydata[mydata$place == "A"], aes(x = Size, y = Conc, color = Species)) + geom_point(shape = 1) 

作品繪製代碼只需將A,我可以爲不同的地方一一做到這一點。然而,在我的真實數據集中,地點變量有很多不同的地方,我不能一個一個地手動輸入。因此,我的問題實際上是如何讓R一次自動地爲不同地方製作這些地塊?

回答

1

嘗試:

ggplot(ddf)+geom_point(aes(Size, Conc.))+facet_grid(Place~Species) 

enter image description here

如果有太多的地方:

ggplot(ddf)+geom_point(aes(Size, Conc., color=Place))+facet_grid(.~Species) 

enter image description here

,或者在一個圖表:

ggplot(ddf)+geom_point(aes(Size, Conc., color=Place,shape=Species), size=5) 

enter image description here

+0

非常感謝您,mso!它絕對有效。還有一個問題,因爲我有太多的地方。最後的圖形擠在一起,難以閱讀。我想知道如何腳本來一次只繪製一部分地方的圖形?說前10張圖。或者有沒有其他方法可以讓最終圖看起來更好?由於信用不佳,我無法附上我的最終圖表。對不起 – Chuan 2014-10-28 15:48:51

+0

您可以使用以下命令對數據框進行排序:ddf = ddf [order(ddf $ Place),]。然後通過指定行,在一個圖中繪製一些地方:ggplot(ddf [1:10,])而不是ggplot(ddf)。 – rnso 2014-10-28 16:55:40

+0

非常感謝!我在R中很新,並且學到很多東西。 – Chuan 2014-10-28 17:56:53