2014-10-28 68 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