【问题标题】:Make scatter plots for multiple subsets of data为多个数据子集制作散点图
【发布时间】:2014-10-28 03:44:06
【问题描述】:

让我先介绍一下我的数据集和我的初步结果,以便更好地理解我的问题。我的数据集如下所示:

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 上为每个Species 制作SizeConc. 的散点图。我所做的使用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,我可以为不同的位置一一进行。但是,在我的真实数据集中,place 变量有很多不同的地方,我无法手动将它们一一输入。因此,我的问题实际上是如何让 R 一次自动为不同的地方制作这些图?

【问题讨论】:

    标签: r plot


    【解决方案1】:

    试试:

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

    如果地方太多:

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

    或者,在一张图中:

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

    【讨论】:

    • 非常感谢您,mso!它绝对有效。还有一个问题,因为我的地方太多了。最后的图表挤在一起,难以阅读。我想知道如何编写脚本一次只绘制部分位置?说前10张图。或者有没有其他方法可以让最终的图表看起来更好?由于信用低,我无法附上我的最终图表。对不起
    • 您可以使用命令对数据框进行排序:ddf=ddf[order(ddf$Place),]。然后通过指定行在一个图中绘制一些位置:ggplot(ddf[1:10,]) 而不是 ggplot(ddf)。
    猜你喜欢
    • 2022-01-07
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 2011-05-15
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多