Це питання візуалізації даних. У мене є база даних, яка містить деякі дані, які постійно переглядаються (оновлення в Інтернеті). Який найкращий спосіб R оновлювати графік, скажімо, 5 або 10 секунд. (без повторного складання все можливе)?
fRed
Це питання візуалізації даних. У мене є база даних, яка містить деякі дані, які постійно переглядаються (оновлення в Інтернеті). Який найкращий спосіб R оновлювати графік, скажімо, 5 або 10 секунд. (без повторного складання все можливе)?
fRed
Відповіді:
Припускаючи, що ви хочете оновити R windows()або x11()графік, ви можете використовувати такі функції, як points()і lines()для додавання нових точок або розширення рядків на графіку без перемальовки; все ж зауважте, що це не змінить діапазон осей для розміщення точок, які можуть вийти з поля зору. Взагалі, зазвичай, це гарна ідея зробити миттєвий графік миттєвим - наприклад, перемістивши обчислювальні зусилля, щоб зробити деяке зменшене середнє представлення, яке може бути побудовано швидко, як карта щільності замість величезної кількості точок або зменшення роздільної здатності лінійних ділянок ( але це може бути складним).
Для проведення R сесії протягом певного часу без напруженого очікування використовуйте Sys.sleep().
plot(), можливо, 0,0,type="n"якщо ще немає нічого в змові ... Дійсно, це набагато простіше, ніж динг plot.new()і додавання всіх матеріалів, таких як оси чи мітки вручну.
Для візуалізації в режимі офлайн ви можете генерувати файли 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):

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