R: оновити графік динамічно [закрито]


9

Це питання візуалізації даних. У мене є база даних, яка містить деякі дані, які постійно переглядаються (оновлення в Інтернеті). Який найкращий спосіб R оновлювати графік, скажімо, 5 або 10 секунд. (без повторного складання все можливе)?

fRed

Відповіді:


7

Припускаючи, що ви хочете оновити R windows()або x11()графік, ви можете використовувати такі функції, як points()і lines()для додавання нових точок або розширення рядків на графіку без перемальовки; все ж зауважте, що це не змінить діапазон осей для розміщення точок, які можуть вийти з поля зору. Взагалі, зазвичай, це гарна ідея зробити миттєвий графік миттєвим - наприклад, перемістивши обчислювальні зусилля, щоб зробити деяке зменшене середнє представлення, яке може бути побудовано швидко, як карта щільності замість величезної кількості точок або зменшення роздільної здатності лінійних ділянок ( але це може бути складним).

Для проведення R сесії протягом певного часу без напруженого очікування використовуйте Sys.sleep().


(+1) Я забув Sys.sleep()функцію. Я думаю, щох- і у-ось діапазону варто встановити заздалегідь, ні?
chl

@chl, так х і уДіапазони осей слід встановлювати заздалегідь.
mpiktas

1
@mpiktas Або просто запросити сюжет за допомогою одного дзвінка plot(), можливо, 0,0,type="n"якщо ще немає нічого в змові ... Дійсно, це набагато простіше, ніж динг plot.new()і додавання всіх матеріалів, таких як оси чи мітки вручну.

Дійсно, це здається найпростішим ... але занадто поганим, що осі не оновлюються. Оскільки я хочу оновити в Інтернеті часовий ряд, і я знаю, з якою швидкістю рухається вісь x, я здогадуюсь, що можу перепрофілювати все, що стосується n оновлень.
RockScience

8

Для візуалізації в режимі офлайн ви можете генерувати файли PNG та конвертувати їх у анімований GIF за допомогою ImageMagick . Я використовував це для демонстрації (хоча це перемальовує всі дані):

source(url("http://aliquote.org/pub/spin_plot.R"))
dd <- replicate(3, rnorm(100))
spin.plot(dd)

Це генерує кілька файлів PNG з префіксом fig. Потім на оболонці un * x

convert -delay 20 -loop 0 fig*.png sequence.gif

дає цю анімацію (яка натхненна сучасними прикладними біостатистичними методами за допомогою S-Plus , S. Selvin, 1998):

alt текст

Ще один варіант, який виглядає набагато перспективніше - покластися на пакет анімації . Наведений приклад із автоматичною регресією вікна, що рухається, з якої слід розпочати роботу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.