5

I have created the gnuplot, but the problem is that it disappears immediately. I tried different solutions proposed in other threads, but none of them worked. Solution 1: comment the line bf.append("quit").append(NL); in the file GNUPlotParameters.java. Solution 2: put the line gp.setPersist(true); before gp.plot();.

DataSetPlot plotdata = new DataSetPlot(Xvals);
plotdata.setTitle("");
GNUPlot gp = new GNUPlot("C:\\Program Files (x86)\\gnuplot\\bin\\pgnuplot.exe");
gp.addPlot(plotdata);
gp.plot();
gp.setPersist(true);

So, how to solve this problem?

P.S. I'm running this code on Windows 7.

Klausos Klausos
  • 15,308
  • 51
  • 135
  • 217

2 Answers2

1

Unfortunately this seems to be a bug in gnuplot under windows. See this bug report.

If you want this type of functionality, you have two options:

  1. use CygWin version of gnuplot
  2. save the result to a file, or use the JPlot swing component.

EDIT: There is a new version of JavaPlot which should fix this issue.

Panayotis
  • 1,792
  • 23
  • 32
0

Look into the -persist option to pass to gnuplot, you could probably change the third line in your code to

GNUPlot gp = new GNUPlot("C:\\Program Files (x86)\\gnuplot\\bin\\pgnuplot.exe -persist");

or

GNUPlot gp = new GNUPlot("C:\\Program Files (x86)\\gnuplot\\bin\\pgnuplot.exe /noend");

Here is my source.

andyras
  • 15,542
  • 6
  • 55
  • 77
  • You can't do that. The initialization method does not allow parameters. – Panayotis Dec 01 '13 at 10:18
  • @Panayotis, do you mean that when calling gnuplot from java you cannot pass command line flags? I am not a Windows user, but that seems strange to me. I checked and there are posts (e.g. https://groups.google.com/forum/#!topic/comp.graphics.apps.gnuplot/L2N6cpuNLrE) where people are passing flags to gnuplot called in Windows. – andyras Dec 02 '13 at 11:27
  • 1
    You can pass command line flags, but not with JavaPlot. The single argument is only the filename executable. What you wrote will try to call the executable "C:\\Program Files (x86)\\gnuplot\\bin\\pgnuplot.exe /noend" which of course does not exist. – Panayotis Dec 04 '13 at 11:00
  • 1
    I had a similar problem as the OP (gnuplot demos immediately disappearing) and calling them with `gnuplot -persist example.gnu` solved the issue. Thanks! – Dominik Mokriš Jan 08 '22 at 13:51