Plot 球拍实时绘图/图表

Plot 球拍实时绘图/图表,plot,graph,charts,racket,real-time-updates,Plot,Graph,Charts,Racket,Real Time Updates,我想用球拍制作一张实时图表。我已经看过Plot和GUI库,似乎我遗漏了一些东西。调用plot时,它返回图像剪切%或其他多种图片格式。但我似乎找不到任何方法在不再次调用plot的情况下从图表中添加或删除点。现在我想我可以用这样的方法 但是,我必须重新实现所有的操纵机制,来与剪断%。现在,我可能不得不这么做,但我想问的是,是否有任何现有的机制可以让你在创建一个plot snip%后操作它的图形和数据,或者每次我想改变它的外观时,我都必须手动重新绘制它?另外,有没有任何现有的工作,已经做了实时图表在

我想用球拍制作一张实时图表。我已经看过Plot和GUI库,似乎我遗漏了一些东西。调用plot时,它返回图像剪切%或其他多种图片格式。但我似乎找不到任何方法在不再次调用plot的情况下从图表中添加或删除点。现在我想我可以用这样的方法


但是,我必须重新实现所有的操纵机制,来与剪断%。现在,我可能不得不这么做,但我想问的是,是否有任何现有的机制可以让你在创建一个plot snip%后操作它的图形和数据,或者每次我想改变它的外观时,我都必须手动重新绘制它?另外,有没有任何现有的工作,已经做了实时图表在球拍一般

在深入研究Rackets OOP和gui库之后,我最终发现(并理解)了plot/dc,文档声称它可以用于此类应用程序:

在渲染时,它似乎比动画画布工作得更好,但我仍然需要重新实现缩放和单击以及剪贴%s附带的所有功能,除非有人有更好的想法

#lang racket

(require racket/gui plot racket/draw)

(define num 0)

(define f (new frame% [label "Test graph"]
               [width 200]
               [height 200]))
(define c (new canvas% [parent f]))


(send f show #t)

(define (loop)
  (set! num (add1 num))
  (plot/dc (function sin (- pi) num)
           (send c get-dc)
           0 0
           (- (send f get-width) 40) ;; figure out how to get the actual size of the text outside the graphs boarder?
           (- (send f get-height) 40)
           #:title "Graph"
           #:x-label "num"
           #:y-label "sin"
           )
  (sleep/yield .2)
  (loop))

(loop)