0

我的浮点图没有显示任何线条,在 Java 中使用 Integer 将 epoch 乘以 1000 有问题吗?
这是我的原始数据,存储在.txt文件中

epoch,value
1383229104,55559
1383229121,55559
1383229787,55565

它由 Servlet 解析并存储在内部:

Vector<Integer> points = new Vector<Integer>();

例如

points.add(Integer.parseInt(strLine.split(",")[0]) * 1000);
points.add(Integer.parseInt(strLine.split(",")[1]));

有多个文件,每个文件都包含要在图表上绘制的单独系列(线)。
对于每个Vector<Integer> points对象,它们被添加到 ..

Vector<Dataset> datasets = new Vector<Dataset>();

数据集有以下定义:

public class Dataset {

    private String name;
    private Vector<Vector<Integer>> points;

一旦所有文件都被解析并添加到 中Vector<Dataset> datasets,这个对象就会被发送到客户端,并使用response.getWriter().write(new Gson().toJson(datasets));
“绘制”

var datasets = JSON.parse(xmlhttp.responseText);

    var plotarea = $("#placeholder");
    $.plot(plotarea, [datasets[0].points, datasets[1].points, datasets[2].points, datasets[3].points, datasets[4].points], {
        xaxis: {
            mode: "time",
            min: (new Date(2012, 0, 1)).getTime(),
            max: (new Date(2015, 0, 1)).getTime()
        }
    });

更新: ------------------------------------------------ --------------------------
javascript 中的调试输出。
有5个文件被加载到Vector<Dataset> datasets = new Vector<Dataset>();

alert(datasets) .. [object Object],[object Object],[object Object],[object Object],[object Object]
console.log(datasets) .. [object Array]

我可以使用以下方式访问值:

alert(datasets[0].points[0][0]);
alert(datasets[0].points[0][1]);

输出将是两个警报对话框,一个包含249634688,第二个55559
注意: 1383229104 * 1000不应该249634688

4

2 回答 2

2

您应该使用 Long,而不是 Integer。显然这是一个溢出问题。

于 2013-11-01T01:51:45.080 回答
0

更改private Vector<Vector<Integer>> points;private Vector<Vector<Long>> points;
引起的预期结果,即1383229104000

于 2013-11-01T02:07:08.873 回答