R : 그래프를 동적으로 업데이트


9

이것은 데이터 시각화 질문입니다. 지속적으로 수정되는 일부 데이터가 포함 된 데이터베이스가 있습니다 (온라인 업데이트). R에서 5 또는 10 초마다 그래프를 업데이트하는 가장 좋은 방법은 무엇입니까? (다시 플롯하지 않으면 모든 것이 가능합니다)?

사육

답변:


7

당신이 업데이트 R 원하는 가정 windows()이나 x11()그래프, 당신은 같은 기능을 사용할 수 있습니다 points()lines()다시 그리기없이 그래프에 선을 새로운 포인트를 추가하거나 확장하는; 그러나 이것은 시야를 벗어날 수있는 점을 수용하기 위해 축 범위를 변경하지는 않습니다. 일반적으로 계산 작업을 많은 수의 점 대신 밀도 맵처럼 빠르게 플롯 할 수있는 중간 표현을 줄이거 나 선 플롯의 해상도를 낮추는 등의 방법으로 플로팅 자체를 즉각적으로 만드는 것이 좋습니다. 이것은 복잡 할 수 있습니다).

통화 중 대기없이 일정 시간 동안 R 세션을 유지하려면을 사용하십시오 Sys.sleep().


(+1) Sys.sleep()기능을 잊었습니다 . 축 과 축 범위가 미리 설정되어 있어야 한다고 생각합니다 . xy
chl

@chl, 예 및 축 범위를 미리 설정해야합니다. xy
mpiktas

1
@mpiktas 또는을 아직 한 번의 호출로 플롯을 초기화하십시오. 아직 플롯 할 것이 없다면 plot()아마도 축이나 레이블과 같은 모든 물건을 손으로 추가하고 추가하는 0,0,type="n"것보다 훨씬 쉽습니다 plot.new().

실제로 이것은 가장 단순 해 보이지만 축이 업데이트되지 않기에는 너무 나쁩니다. 시계열을 온라인으로 업데이트하고 x 축이 어느 속도로 움직이는 지 알고 있으므로 n 업데이트마다 모든 것을 다시 표시 할 수 있다고 생각합니다.
RockScience

8

오프라인 시각화의 경우 PNG 파일을 생성하고 ImageMagick을 사용하여 애니메이션 GIF로 변환 할 수 있습니다 . 데모 용으로 사용했습니다 (그러나 모든 데이터를 다시 그립니다).

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를 사용한 Modern Applied Biostatistical Methods , S. Selvin, 1998).

대체 텍스트

훨씬 더 유망 해 보이는 또 다른 옵션은 애니메이션 패키지 에 의존하는 것 입니다. 이동 창 자동 회귀에 대한 예제 가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.