Live, Animated Plot

The following plot illustrates a dynamically updated plot:

If your browser recognized the applet tag, you would see an applet here.

Click on the start button to start the plotting, and on the stop button to stop it. The animation on this plot has been slowed down for visual aesthetics. On a reasonable computer, plotting is quite fast.

Such a plot is created by defining a class derived from PlotLive (which is abstract). The example shown here is the PlotLiveDemo class. It defines two methods, init() and addPoints(). The init() method sets static properties of the plot (title, labels, etc.) while the addPoints() method is called from the body of the run() method in the parent class. The parental run() method is called by a thread that generates points forever (if it is allowed to).

There are still some problems with PlotLive. The most annoying is that this class uses the "exclusive or" drawing mode to allow it to easily erase old points as it adds new ones. This mode, however, introduces a number of annoying artifacts in the graph. In particular, if marks are made at the plotted points, and lines are drawn between points, the lines effectively erase the marks where they intersect. Moreover, if lines or points overlap, they erase each other. In the future we hope to replace this mechanism with one that treats marks on the screen as graphical objects.

Up to the Example index - Back to a bar graph - Forward to a plot of binary data
Copyright © 1997, The Regents of the University of California. All rights reserved.
Last updated: 10/17/97, comments to: