นี่เป็นคำถามการสร้างภาพข้อมูล ฉันมีฐานข้อมูลที่มีข้อมูลบางอย่างที่มีการแก้ไขอย่างต่อเนื่อง (อัพเดตออนไลน์) อะไรคือวิธีที่ดีที่สุดใน R ในการอัปเดตกราฟทุกครั้งที่บอกว่า 5 หรือ 10 วินาที (โดยไม่ต้องวางแผนใหม่ทุกสิ่งเป็นไปได้)?
เฟร็ด
นี่เป็นคำถามการสร้างภาพข้อมูล ฉันมีฐานข้อมูลที่มีข้อมูลบางอย่างที่มีการแก้ไขอย่างต่อเนื่อง (อัพเดตออนไลน์) อะไรคือวิธีที่ดีที่สุดใน R ในการอัปเดตกราฟทุกครั้งที่บอกว่า 5 หรือ 10 วินาที (โดยไม่ต้องวางแผนใหม่ทุกสิ่งเป็นไปได้)?
เฟร็ด
คำตอบ:
สมมติว่าคุณต้องการอัปเดต R windows()
หรือx11()
กราฟคุณสามารถใช้ฟังก์ชันเช่นpoints()
และlines()
เพื่อเพิ่มคะแนนใหม่หรือขยายบรรทัดบนกราฟโดยไม่ต้องวาดใหม่ แต่โปรดทราบว่าสิ่งนี้จะไม่เปลี่ยนช่วงแกนเพื่อรองรับจุดที่อาจออกนอกมุมมอง โดยทั่วไปแล้วมันเป็นความคิดที่ดีที่จะทำให้การวางแผนในทันที - ตัวอย่างเช่นโดยพยายามย้ายการคำนวณเพื่อลดการเป็นตัวแทนระดับกลางซึ่งสามารถพล็อตได้อย่างรวดเร็วเช่นแผนที่ความหนาแน่นแทนที่จะเป็นจำนวนมากหรือลดความละเอียดของแผนที่ สิ่งนี้อาจมีความซับซ้อน)
สำหรับการถือครองเซสชั่น R Sys.sleep()
สำหรับเวลาที่แน่นอนโดยไม่ต้องรอว่างใช้
plot()
อาจเป็นไปได้0,0,type="n"
ว่ายังไม่มีอะไรที่จะพล็อต ... แน่นอนว่ามันง่ายกว่าการทำ ding 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 shell
convert -delay 20 -loop 0 fig*.png sequence.gif
ให้ภาพเคลื่อนไหวนี้ (ซึ่งได้รับแรงบันดาลใจจากวิธีชีวสถิติประยุกต์สมัยใหม่โดยใช้ S-Plus , S. Selvin, 1998):
ตัวเลือกที่ดูมีแนวโน้มมากขึ้นก็คือการพึ่งพาแพ็คเกจภาพเคลื่อนไหว มีตัวอย่างด้วยการย้ายการถดถอยอัตโนมัติที่ควรให้คุณเริ่มต้นด้วย
Sys.sleep()
ฟังก์ชั่น ฉันคิดว่าช่วง - และ -axis ควรวางเดิมพันล่วงหน้าใช่ไหม?