JavaPlot时间戳无效

时间:2015-04-28 13:45:40

标签: java javaplot

我有一个像

这样的文件
1429520881 15.0
1429520882 3.0
1429520883 340.0

我尝试在JavaPlot中使用它

JavaPlot plot=new JavaPlot();
GenericDataSet dataset=new GenericDataSet();
filling dataset with data
...
plot.set("xdata","time");
plot.set("timefmt","'%s'");
plot.set("format x","'%H:%M:%S'");
plot.plot();

结果gnuplot的窗口不会出现但是如果我直接在gnuplot中尝试使用相同的数据和选项,它会在xAxis上显示时间;如果在JavaPlot中我删除了最后的设置(xdata,timefmt,format)它可以工作,但它只显示数字

我还尝试使用程序中的数据创建manualy数据集,但结果相同。

我还实现了新的DataSet,日期为String,但似乎xdata,时间选项不起作用

2 个答案:

答案 0 :(得分:1)

花了很长时间才想出这个。我发现如果你有一个DataSetPlot对象,你可以设置'使用'选项:

DataSetPlot dataSet = new DataSetPlot( values );
dataSet.set( "using", "1:2" );

然后,这将使用'使用' plot命令的选项,例如:

plot '-' using 1:2 title 'Success' with lines linetype rgb 'green'

你必须使用'使用'将时间用于x轴时的选项,否则您将看到此错误:

  

需要完全使用x时间数据的规范

答案 1 :(得分:0)

由于ParametersHolder继承了HashMap,它会以奇怪的顺序生成包含数据的临时脚本文件,并且应该有"使用"关键字' - ' 例如: 我写了LinkedParams扩展GNUPlotParameters类与内部LinkedMap和覆盖方法来使用内部结构;

set ... ...(xrange,yrange etc)
set xdata time
set timefmt '%s'
set format x '%H:%M:%S'
plot '-' using 1:2 title 'ololo' with linesploints lineType 2 lineWidth 3
1429520881 15.0
1429520882 3.0
1429520883 340.0
e
quit

但它是

set xdata time
set ... ...(xrange,yrange etc)
set format x '%H:%M:%S'
set timefmt '%s'
plot '-' title 'ololo' with linesploints lineType 2 lineWidth 3
1429520881 15.0
1429520882 3.0
1429520883 340.0
e
quit