4

目前,我的代码最初允许用户选择他们想要的数据集(二选一)。然后根据他们的选择,出现数据集各自子集的其他绘图变量。这很好用,除了我希望这些图全部覆盖在一个图上,而不是像默认情况下那样分开。

我有一个默认绘图 plot_Total,数据集中的其他选项正在查看它的特定子集。所以只有一个散点是有意义的。

 output$plot_Total <- reactivePlot(function() { 
  plot.new()
   plot.window(xlim=c(1850,2020), ylim = c(0,5000000))
   axis(1)
   axis(2)
   title(main="Numbers over the years")
   title(xlab="Year")
   title(ylab="Number of people")
   box()
   points(dat$Year, dat$Total, col="red")
   lines(dat$Year, dat$Total, col="red")
   })

 output$plot_subset1 <- reactivePlot(function() { lines(dat$Year, dat$subset1) })
 output$plot_subset2 <- reactivePlot(function() { lines(dat$Year, dat$subset2) })

为什么这个代码片段不起作用?它只是为每个(不需要的)图形创建空白空间,在其下方显示“错误:尚未调用 plot.new”。如何指定将这些线添加到默认 (plot_Total) 图中?

4

1 回答 1

7

更新:通过玩弄闪亮主页上的图形代码,我意识到我必须这样做:

 output$plot_Total <- reactivePlot(function() { 
  plot.new()
   plot.window(xlim=c(1850,2020), ylim = c(0,5000000))
   axis(1)
   axis(2)
   title(main="Numbers over the years")
   title(xlab="Year")
   title(ylab="Number of people")
   box()
   points(dat$Year, dat$Total, col="red")
   lines(dat$Year, dat$Total, col="red")
  if (input$RC) {   lines(dat$Year, dat$dat)}
  })

这在两个方面与我的原始代码不同。首先,条件被添加为同一反应图函数中的一行。其次,我创建了一个仅包含子集 RC 的新 data.frame。这最初不是作为 input$dat$RC 工作的,但是当 RC 是它自己的数据框时,它作为 input$RC 工作。

指向大通引导我朝着正确的方向前进!

于 2012-11-10T19:15:08.823 回答