यह एक डेटा विज़ुअलाइज़ेशन प्रश्न है। मेरे पास एक डेटाबेस है जिसमें कुछ डेटा है जो लगातार संशोधित (ऑनलाइन अपडेट) है। R को ग्राफ को अपडेट करने का सबसे अच्छा तरीका क्या है, हर 5 या 10 सेकंड में बताएं। (फिर से साजिश किए बिना सब कुछ संभव है)?
फ्रेड
यह एक डेटा विज़ुअलाइज़ेशन प्रश्न है। मेरे पास एक डेटाबेस है जिसमें कुछ डेटा है जो लगातार संशोधित (ऑनलाइन अपडेट) है। R को ग्राफ को अपडेट करने का सबसे अच्छा तरीका क्या है, हर 5 या 10 सेकंड में बताएं। (फिर से साजिश किए बिना सब कुछ संभव है)?
फ्रेड
जवाबों:
मान लें कि आप अद्यतन आर करना चाहते हैं windows()या x11()ग्राफ, आप जैसे कार्यों के लिए उपयोग कर सकते points()हैं और lines()redraw के बिना एक ग्राफ पर नया अंक लाइनों को जोड़ने या विस्तार करने के लिए; अभी तक ध्यान दें कि यह कुल्हाड़ियों रेंज को उन बिंदुओं को समायोजित करने के लिए नहीं बदलेगा जो देखने से बाहर जा सकते हैं। सामान्य तौर पर, प्लॉटिंग को तात्कालिक बनाने के लिए आमतौर पर यह एक अच्छा विचार है - उदाहरण के लिए, कुछ कम मध्य प्रतिनिधित्व बनाने में अभिकलन प्रयास को बढ़ाकर, जिसे तेजी से प्लॉट किया जा सकता है, जैसे घनत्व मानचित्र के बजाय अंक की भारी संख्या या लाइन भूखंडों के रिज़ॉल्यूशन को कम करना ( हालांकि यह जटिल हो सकता है)।
व्यस्त प्रतीक्षा के बिना एक निश्चित समय के लिए आर सत्र आयोजित करने के लिए, उपयोग करें Sys.sleep()।
plot(), संभवतः 0,0,type="n"अगर प्लॉट के लिए अभी तक कुछ भी नहीं है ... वास्तव में यह डिंग की तुलना में बहुत आसान है plot.new()और सभी सामान जैसे एक्सिस या लेबल को हाथ से जोड़ना।
ऑफ़लाइन विज़ुअलाइज़ेशन के लिए, आप PNG फ़ाइलें जनरेट कर सकते हैं और उन्हें ImageMagick का उपयोग करके एनिमेटेड GIF में परिवर्तित कर सकते हैं । मैंने इसे प्रदर्शन के लिए उपयोग किया (यह सारा डेटा फिर से प्रकाशित करता है):
source(url("http://aliquote.org/pub/spin_plot.R"))
dd <- replicate(3, rnorm(100))
spin.plot(dd)
यह कई पीएनजी फाइलें उत्पन्न करता है, जिनके साथ उपसर्ग होता है fig। फिर, संयुक्त राष्ट्र के * x शेल पर,
convert -delay 20 -loop 0 fig*.png sequence.gif
यह एनीमेशन देता है (जो कि S-Plus , S. Selvin, 1998 का उपयोग करके आधुनिक एप्लाइड बायोस्टैटिकल मेथड्स से प्रेरित है ):

एक और विकल्प जो बहुत अधिक आशाजनक दिखता है वह है एनीमेशन पैकेज पर भरोसा करना । एक चलती खिड़की ऑटो-रिग्रेशन के साथ एक उदाहरण है जो आपको शुरू करने देना चाहिए।
Sys.sleep()फंक्शन भूल गया । मुझे लगता है कि - और -axis रेंज को अग्रिम में सेट करना चाहिए, नहीं?