javaplot时间戳不工作

h6my8fg2  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(216)

我有一个文件

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中我删除了最后的设置(扩展数据、timefmt、格式),它可以工作,但它只显示数字
我还尝试用程序中的数据手动创建数据集,但结果相同。
我还实现了以日期作为字符串的新数据集,但扩展数据和时间选项似乎不起作用

70gysomp

70gysomp1#

我花了很长时间才弄明白。我发现如果你有一个datasetplot对象,你可以设置'using'选项:

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

这将使用plot命令的“using”选项,例如:

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

在使用x轴的时间时,必须使用“using”选项,否则会看到此错误:
需要使用x时间数据的完整规范

tp5buhyn

tp5buhyn2#

因为parametersholder继承hashmap,'-'后面应该有“using”关键字,所以生成temp脚本文件,里面的数据顺序很奇怪,例如:我写了linkedparams,用内部linkedmap扩展gnuplotparameters类,重写方法使用内部结构;

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

相关问题