4

現在、私のコードでは、最初にユーザーが必要なデータセットを選択できるようにしています (2 つの選択肢)。次に、選択内容に基づいて、データセットのそれぞれのサブセットの他のプロット変数が表示されます。デフォルトで個別に表示されるのではなく、プロットをすべて1つのプロットに重ねて表示したいという事実を除けば、これはうまく機能します。

デフォルトのプロット、plot_Total があり、データセットの他のオプションはこれの特定のサブセットを見ています。そのため、散布図を 1 つだけ使用することは理にかなっています。

 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)}
  })

これは、元のコードとは 2 つの点で異なります。まず、条件は同じ reactplot 関数内に 1 行だけ追加されます。次に、サブセット RC のみを含む新しい data.frame を作成しました。これは当初、input$dat$RC として機能していませんでしたが、RC が独自のデータフレームである場合、input$RC として機能します。

私を正しい方向に導いてくれたチェイスを指差して!

于 2012-11-10T19:15:08.823 に答える