R: อัปเดตกราฟแบบไดนามิก [ปิด]


9

นี่เป็นคำถามการสร้างภาพข้อมูล ฉันมีฐานข้อมูลที่มีข้อมูลบางอย่างที่มีการแก้ไขอย่างต่อเนื่อง (อัพเดตออนไลน์) อะไรคือวิธีที่ดีที่สุดใน R ในการอัปเดตกราฟทุกครั้งที่บอกว่า 5 หรือ 10 วินาที (โดยไม่ต้องวางแผนใหม่ทุกสิ่งเป็นไปได้)?

เฟร็ด

คำตอบ:


7

สมมติว่าคุณต้องการอัปเดต R windows()หรือx11()กราฟคุณสามารถใช้ฟังก์ชันเช่นpoints()และlines()เพื่อเพิ่มคะแนนใหม่หรือขยายบรรทัดบนกราฟโดยไม่ต้องวาดใหม่ แต่โปรดทราบว่าสิ่งนี้จะไม่เปลี่ยนช่วงแกนเพื่อรองรับจุดที่อาจออกนอกมุมมอง โดยทั่วไปแล้วมันเป็นความคิดที่ดีที่จะทำให้การวางแผนในทันที - ตัวอย่างเช่นโดยพยายามย้ายการคำนวณเพื่อลดการเป็นตัวแทนระดับกลางซึ่งสามารถพล็อตได้อย่างรวดเร็วเช่นแผนที่ความหนาแน่นแทนที่จะเป็นจำนวนมากหรือลดความละเอียดของแผนที่ สิ่งนี้อาจมีความซับซ้อน)

สำหรับการถือครองเซสชั่น R Sys.sleep()สำหรับเวลาที่แน่นอนโดยไม่ต้องรอว่างใช้


(+1) ฉันลืมSys.sleep()ฟังก์ชั่น ฉันคิดว่าช่วง - และ -axis ควรวางเดิมพันล่วงหน้าใช่ไหม? xy
chl

@chl, ใช่ควรจะตั้งค่าช่วงแกนและล่วงหน้า xy
mpiktas

1
@mpiktas หรือเพียงแค่เริ่มต้นพล็อตด้วยการโทรเพียงครั้งเดียวplot()อาจเป็นไปได้0,0,type="n"ว่ายังไม่มีอะไรที่จะพล็อต ... แน่นอนว่ามันง่ายกว่าการทำ ding plot.new()และเพิ่มสิ่งต่าง ๆ เช่นแกนหรือป้ายกำกับด้วยมือ

อันที่จริงดูเหมือนว่าจะง่ายที่สุด ... แต่ก็แย่เกินไปที่แกนจะไม่อัปเดต เมื่อฉันต้องการอัปเดตอนุกรมเวลาออนไลน์และฉันรู้ว่าความเร็วในการเคลื่อนที่ของแกน x ฉันคิดว่าฉันสามารถทำซ้ำทุกสิ่งที่อัพเดตทุก n
RockScience

8

สำหรับการแสดงออฟไลน์คุณสามารถสร้างไฟล์ 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):

ข้อความแสดงแทน

ตัวเลือกที่ดูมีแนวโน้มมากขึ้นก็คือการพึ่งพาแพ็คเกจภาพเคลื่อนไหว มีตัวอย่างด้วยการย้ายการถดถอยอัตโนมัติที่ควรให้คุณเริ่มต้นด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.