From: Ralf J. <jue...@cs...> - 2008-03-24 15:49:34
|
Hello, On Mon, 24 Mar 2008, Tatsuro MATSUOKA wrote: >> I don't have much experience with interprocess communication, so I don't >> know how these kinds of things are usually handled, but it seems like a >> problem that must have been solved many times over. > > It is known that data from pipe like > plot '-' > 1, 1 > : > : > e > is too fast to plot for pgnuplot. Since I work mostly on Linux, I can't say much about pgnuplot. But I am using gnuplot as a plotting backend as well and observed similar problems. My solution was to make the gnuplot interface bi-directional and have gnuplot work in interactive mode. (You need to use two pipes for that). In interactive mode for every line of data you pipe to gnuplot it sends back a prompt ("input data ('e' ends) >"). That means for every line of data you need to read the prompt from the input pipe. It is more work to implement a bi-directional interface, but that way the pace of the data flow adjusts automatically. That said, I have begun to move to binary data transer. The problem seems to not occur with binary transfer, but I have yet to gain more experience with it. If you want to copy this approach, have a look at ftp://ftp.cs.pdx.edu/pub/psu-lush/psu-lush-1.3pre8.tar.gz. The gnuplot interface is in file lsh/libplot/gnuplot.lsh. There also is a tiny gnuplot demo in the demos directory. Ralf |