2013-07-10 3 views
0

Я пытаюсь получать данные от датчика время от времени и строить график в реальном времени. Это означает, что длина набора данных не знает заранее. И нужно динамически изменять диапазон графика.добавить данные на существующий график в R

Я попытался следующие

plot(1,10, xlim=range(0,10), ylim=range(0,10), type='n') 

points(1,data[1]) 

points(2,data[2]) 

Но когда число точек находится за пределами диапазона оси х (10 в данном случае), точки данных находятся вне диапазона. Как отрегулировать диапазон соответственно?

+0

Внутренние системы построения R не позволяют выполнять динамические операции, но вы можете вызывать системы графического отображения OpenGL и TclTK из R, а те (IIRC) позволяют динамически настраивать, добавлять элементы управления ползунками и т. Д. –

+1

И давайте не будем забывать [ Блестящая] (http://www.rstudio.com/shiny/)! – nico

ответ

0

Вы не можете регулировать диапазон динамически (иногда Excel - лучше). Однако вы можете следить за тем, что вы нарисовали, и переделать сюжет, когда вы достигли предела. Вы также можете просто создавать новый сюжет каждый раз, когда вы получаете больше данных, что было бы способом подделать динамическое обновление.

3

Просто введите новую команду plot с расширенным диапазоном. На современных компьютерах время, затраченное на воссоздание сюжета, невелико, и вы обычно не заметите задержки. Любой другой подход по существу сделает то же самое, очистит текущий сюжет и создаст новый сюжет.

В пакетах ggplot2 и решетки есть способы построения графика и обновления графика, но когда отображается обновленный график, он перерисовывается с нуля.

В пакете TeachingDemos есть функция zoomplot, которая позволит вам изменить диапазон сюжета, но также будет просто перерисовывать график с нуля (и из-за изменений в R 3.0.0 он в настоящее время не работает , поэтому, если вы хотите использовать его, вам нужно вернуться к R 2.15 или ранее, или дождаться его исправления).

Смежные вопросы