首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用R绘制散点图

用R绘制散点图
EN

Stack Overflow用户
提问于 2013-10-07 15:23:59
回答 4查看 403关注 0票数 1

我正在绘制传染病传播的模拟模型。

我的数据有三列,x、y和感染时间。我需要在每一时间(t)绘制每个点(x坐标,y坐标),其中t在1到4之间运行。所以我在寻找四张图,每次一张,其中第一张图画出第一个感染点,第二张图在时间1和时间2处画出受感染点,等等。

我知道我可以使用par(mfrow=c(2,2))获得多个图,但我不知道如何将每次都合并到代码中。有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-07 15:43:01

根据原始数据集的不同,有大约一千种方法可以做到这一点。从长远来看,ggplot2可能是最好的。但是,使用基本图形,您可以为每个数据子集绘制一个绘图(还可以使用subset命令代替t<=Ti、自定义颜色等等):

代码语言:javascript
复制
par(mfrow=c(2,2))
for (Ti in 1:4){  
    plot(x[t <= Ti], y[t <= Ti])
}

如果您试图传递时间的推移,您可能想要绘制整个范围的数据在每个图形上看不见,以建立相同的轴。然后使用pointslines将数据绘制成每个相同的帧.

代码语言:javascript
复制
par(mfrow=c(4,1))
for (Ti in 1:4){  
  plot(x, y, type="n")
  points(x[t <= Ti], y[t <= Ti])
}
票数 1
EN

Stack Overflow用户

发布于 2013-10-07 15:44:23

下面是一种使用基本图形的方法:

代码语言:javascript
复制
par(mfrow=c(2,2))

for ( i in 1:4 ) {
  plot( y ~ x, data= mydf[ mydf$time <= i, ] )
}

代码语言:javascript
复制
lapply( 1:4, function(tt) plot(x[time<=tt], y[time<=tt]) )

或者其他类似的方法,取决于数据的结构。

票数 2
EN

Stack Overflow用户

发布于 2013-10-07 15:30:36

我会使用包ggplot2。使用install.packages("ggplot2")安装它,然后在安装包后使用library(ggplot2),尝试以下代码:

代码语言:javascript
复制
p <- ggplot(data, aes(x=x,y=y)) + geom_point() + facet_wrap(~t)

我敢肯定你本可以在这个网站上不问问题就发现这一点!在问这些问题之前,要小心做更多的研究。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19228659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档