交互式绘图:使用滑动条操作ggplot2绘图的内容

时间:2019-01-10 07:59:13

标签: r ggplot2 shiny

编辑:谢谢哈维尔的建议。我忘了提一下,我想将此交互式图表合并到报表/仪表板中,因此可以与RMarkdown的HTML文档一起使用的东西是理想的,但仪表板解决方案也可以。

请考虑以下情节;红线表示实际数据,绿线表示模型生成的预测:

enter image description here

显示两种不同模型的预测;一个在前100个小时内接受了培训,另一个在前216个小时内接受了培训。然后为看不见的数据点生成预测,然后进行绘制。

我想做的是训练n模型,例如每12小时以不断扩大的窗口方式发送一次。完成此操作后,我想以交互方式展示结果,用户可以单击/滑动某些东西来回移动垂直线,从而更改显示哪个模型的预测。关键是要直观地显示不同训练时间的效果。

我是R语言中崭新的互动图的新手;可以做到这一点而不会带来太多麻烦吗?

2 个答案:

答案 0 :(得分:4)

您可以使用manipulate软件包进行快速交互式绘图。 Shiny需要进行更精细的调整,并且更加耗时。

这是一个可复制的示例供您测试: 这将创建滑块:

library(manipulate)
manipulate(plot(1:x), x = slider(1, 100)) 

在此处放置代码以创建交互式绘图:

manipulate(
  plot(cars, xlim = c(0, x.max), type = type, ann = label),
  x.max = slider(10, 25, step=5, initial = 25),
  type = picker("Points" = "p", "Line" = "l", "Step" = "s"),
  label = checkbox(TRUE, "Draw Labels"))

plot1

查看CRAN操作包以获取更多信息: https://cran.r-project.org/web/packages/manipulate/index.html

答案 1 :(得分:0)

我能够使用this link底部的示例来完成此操作。

library(shiny)

sliderInput("n", "Training length:", 100, min=24, max= 11*24)

renderPlot({
  plotPredictCurve(data= df, trainLength= input$n)
})