gpt4 book ai didi

r - 如何在绘图期间打开新的绘图窗口

转载 作者:行者123 更新时间:2023-12-04 04:33:34 25 4
gpt4 key购买 nike

我正在编写一些代码,该代码创建一个由多个单独的图组成的图,每个 ID 一个,显示纵向数据。出于视觉目的,我使用 par 将图表的数量限制为每个绘图 20 个,但数据集中有 20 多个 ID,因此我需要多个绘图。

当前问题:一旦代码超出第 20 个(或 N*20 个)ID,如何避免用新图覆盖较早的图。我想我需要使用 plot.new(),但不清楚如何使用它,并且找不到之前的帖子准确地解决了这个问题。

我的代码:

# Create sample data by sampling
Start <- as.Date("2012-01-01")
End <- as.Date("2013-01-01")
data1 <- data.frame(ID = sort(rep(seq(64),3)), VisitDate = sort((Start + sample.int(End-Start, 192))), Count = rnorm(192, mean = 300, sd = 12), Treat = sample(0:1, 192, replace = TRUE))

# calculate days elapsed since start date, by ID
data1$VisitDate <- with(data1,as.Date(VisitDate,format="%y-%b-%d"))
data1$Days <- unlist(with(data1,tapply(VisitDate,ID,function(x){x-x[1]})))

#Define plot function
plot_one <- function(d){
with(d, plot(Days, Count, t="n", tck=1, main=unique(d$ID), cex.main = 0.8, ylab = "", yaxt = 'n', xlab = "", xaxt="n", xlim=c(0,8), ylim=c(0,500))) # set limits
grid(lwd = 0.3, lty = 7)
with(d[d$Treat == 0,], points(Days, Count, col = 1))
with(d[d$Treat == 1,], points(Days, Count, col = 2))
}

#Create multiple plot figure
par(mfrow=c(4,5), oma = c(0.5,0.5,0.5,0.5), mar = c(0.5,0.5,0.5,0.5))
plyr::d_ply(data1, "ID", plot_one)

最佳答案

如果您使用的是 Windows,请调用 windows() .如果您使用的是 Mac,请调用 quartz() .这些将打开一个新设备,以便您下次调用(例如)plot()不会覆盖您现有的地 block 。

关于r - 如何在绘图期间打开新的绘图窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20135744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com