我试图使用显示与JavaPlot这段代码频谱图:频谱图使用JavaPlot不工作
PlotStyle style = new PlotStyle();
style.setStyle(Style.IMAGE);
DataSetPlot data = new DataSetPlot(points);
data.setPlotStyle(style);
JavaPlot plot = new JavaPlot();
plot.addPlot(data);
plot.plot();
凡点是因为他们在这样的命令行中使用gnuplot的工作时有效:
gnuplot --persist -e 'plot "data.dat" w image'
问题是上面这段代码根本没有显示任何图像,它全是白色的。但是前面的命令工作正常,data.dat包含完全相同格式的点。运行代码时不会出现错误。
下面是一些点的数据的一个例子:
0.0 193.0 0.18183826861232413
0.0 194.0 0.2467637036800797
0.0 195.0 0.43531750893288235
0.0 196.0 0.3893599780473012
0.0 197.0 0.3220816458659573
0.0 198.0 0.25389713892289173
0.0 199.0 0.22935136709597423
1.0 0.0 0.23021155472288352
1.0 1.0 0.33383157107150707
1.0 2.0 0.3745792715533692
1.0 3.0 2.028348052193793
1.0 4.0 2.4150235476868978
1.0 5.0 2.4169194327766736
1.0 6.0 1.8633442057577019
1.0 7.0 4.2682342944471054
1.0 8.0 3.22544345282322
这是sended通过JavaPlot到GNUPLOT命令:
set multiplot layout 1,2 rowsfirst downwards
_gnuplot_error = 1
plot '-' title 'Datafile 1' with image ; _gnuplot_error = 0
0.0 9.0 6.612583996900796
1.0 9.0 4.719585678813712
2.0 9.0 0.5475948495661151
3.0 9.0 0.7385211622757041
4.0 9.0 0.711512824841686
5.0 9.0 3.7572382303712604
6.0 9.0 1.0818137070547578
7.0 9.0 0.057188125070687344
8.0 9.0 0.8218555010675036
9.0 9.0 5.754170136586405
e
if (_gnuplot_error == 1) print '_ERROR_'
unset multiplot
quit
对于这个例子,我花了10×10点,所以通过坐标应该是这样的:
0.0 0.0 6.612583996900796
0.0 1.0 4.719585678813712
0.0 2.0 0.5475948495661151
0.0 3.0 0.7385211622757041
0.0 4.0 0.711512824841686
0.0 5.0 3.7572382303712604
0.0 6.0 1.0818137070547578
0.0 7.0 0.057188125070687344
0.0 8.0 0.8218555010675036
0.0 9.0 5.754170136586405
1.0 0.0 6.612583996900796
1.0 1.0 4.719585678813712
1.0 2.0 0.5475948495661151
1.0 3.0 0.7385211622757041
1.0 4.0 0.711512824841686
1.0 5.0 3.7572382303712604
1.0 6.0 1.0818137070547578
1.0 7.0 0.057188125070687344
1.0 8.0 0.8218555010675036
1.0 9.0 5.754170136586405
...
9.0 9.0 xxxxxxxxxxxxx
似乎JavaPlot没有迭代Y坐标阿泰。
有人知道我做错了什么吗?
有没有办法检查JavaPlot管道,看看gnuplot实际上看到了什么命令? – mgilson 2012-07-23 15:09:28
我该怎么做? – aitorkun 2012-07-23 15:15:21
不知道(我不知道java),但是,它肯定是可能的,因为它是由另一个用户完成的:http://stackoverflow.com/q/11396616/748858 - 也许而不是发送到'gnuplot。 exe',将它发送到另一个从stdin读取的程序,并写入一个临时文件... – mgilson 2012-07-23 15:18:12