Интерактивный график: управление содержимым графика ggplot2 с помощью ползунка - PullRequest
0 голосов
/ 10 января 2019

Редактировать : Спасибо Хавьеру за его предложение. Я забыл упомянуть, что я хотел бы включить этот интерактивный сюжет в отчет / панель мониторинга, поэтому что-то, что работает с документом HTML из RMarkdown, будет идеальным, но решение для панели мониторинга также подойдет.

Рассмотрим следующие графики; красная линия представляет фактические данные, а зеленая линия отображает прогнозы, сгенерированные моделью:

enter image description here

Отображаются прогнозы двух разных моделей; один тренировался в течение первых 100 часов, а другой - в течение первых 216 часов. Затем создаются прогнозы для невидимых точек данных, а затем строятся графики.

То, что я хотел бы сделать, это модели поезда n, например. один раз в 12 часов в расширяющемся окне. Сделав это, я хотел бы представить результаты в интерактивном режиме, где пользователь может щелкнуть / сдвинуть что-нибудь, чтобы переместить вертикальную линию назад и вперед, тем самым изменяя, какие прогнозы модели отображаются. Смысл в том, чтобы интуитивно показать эффект от разной продолжительности обучения.

Я новичок в блестящих и интерактивных сюжетах в R; это можно сделать без особых проблем?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Я смог сделать это с примером внизу по этой ссылке .

library(shiny)

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

renderPlot({
  plotPredictCurve(data= df, trainLength= input$n)
})
0 голосов
/ 10 января 2019

Вы можете с пакетом 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 / веб / пакеты / манипулировать / index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...