Bu bir veri görselleştirme sorusudur. Sürekli revize (çevrimiçi güncelleme) bazı veriler içeren bir veritabanı var. R'de bir grafiği güncellemenin en iyi yolu nedir, her 5 veya 10 saniye olsun. (tekrar çizmeden her şey mümkündür)?
Fred
Bu bir veri görselleştirme sorusudur. Sürekli revize (çevrimiçi güncelleme) bazı veriler içeren bir veritabanı var. R'de bir grafiği güncellemenin en iyi yolu nedir, her 5 veya 10 saniye olsun. (tekrar çizmeden her şey mümkündür)?
Fred
Yanıtlar:
R windows()veya x11()grafiği güncellemek istediğinizi varsayarsak , yeniden çizmeden grafik üzerinde yeni noktalar eklemek veya bir çizgiyi uzatmak için points()ve gibi işlevleri kullanabilirsiniz lines(); ancak bunun, eksenin menzilini görünmeyebilecek noktalara uyacak şekilde değiştirmeyeceğini unutmayın. Genel olarak, çizimin kendisini anlık yapmak genellikle iyi bir fikirdir - örneğin, hesaplama çabasını, çok sayıda nokta yerine yoğunluk haritası gibi, hızlı bir şekilde çizilebilen bazı azaltılmış orta temsiller haline getirerek veya çizgi çizimlerinin çözünürlüğünü azaltarak ( bu karmaşık olabilir).
R oturumunu meşgul beklemeden belirli bir süre tutmak için kullanın Sys.sleep().
plot(), muhtemelen 0,0,type="n"henüz çizecek bir şey yoksa ... Aslında bu, ding plot.new()ve eksenler veya etiketler gibi tüm şeyleri elle eklemekten çok daha kolaydır .
Çevrimdışı görselleştirme için PNG dosyaları oluşturabilir ve ImageMagick'i kullanarak animasyonlu bir GIF'e dönüştürebilirsiniz . Ben gösteri için kullandım (bu olsa da, tüm verileri yeniden çizmek):
source(url("http://aliquote.org/pub/spin_plot.R"))
dd <- replicate(3, rnorm(100))
spin.plot(dd)
Bu, ön ekiyle birkaç PNG dosyası oluşturur fig. Sonra, un * x kabuğunda,
convert -delay 20 -loop 0 fig*.png sequence.gif
bu animasyonu ( S-Plus , S. Selvin, 1998 kullanılarak Modern Uygulamalı Biyoistatistik Yöntemlerden esinlenerek ) verir:

Çok daha umut verici görünen bir başka seçenek de animasyon paketine güvenmektir . Hareketli Pencere Otomatik Regresyonu ile başlamanıza izin veren bir örnek var.
Sys.sleep()İşlevi unuttum . Bence ve -axis aralığı önceden ayarlanmış bahis olmalı, değil mi?