带有两个不同日期/值范围系列的条形图

时间:2015-05-10 17:23:03

标签: primefaces charts jqplot

我正在使用 jqplot 通过 Primefaces 并输入条形图,如下所示:

Series 1:
 label: "Company 1"
 data: {"01-05-2015": 10, "06-05-2015": 3}
Series 2:
 label: "Company 2"
 data: {"03-05-2015": 10, "06-05-2015": 3}

当我将此数据作为BarChartModel传递时,我在图表上错误地绘制了数据。

数据遵循第一个系列,因为在Series 2日期之后绘制了Series 1。我要将数据转换为如下,以便将图表绘制得很好:

Series 1:
 label: "Company 1"
 data: {"01-05-2015": 10, *"03-05-2015": 0*, "06-05-2015": 3}
Series 2:
 label: "Company 2"
 data: { *"01-05-2015": 0* ,  "03-05-2015": 10, "06-05-2015": 3}

注意*和*之间的数据项。

这里有什么建议吗? (如果使用DateAxis有帮助吗?)

1 个答案:

答案 0 :(得分:0)

当我没有使用DateAxis时,我遇到了与LinearChartModel相同的问题。 作为一种解决方法,我在系列中填写了所有可能的数据,然后重新排序列表。 URG!

也应该使用BarChartModel。

使用DateAxis,您只需要添加带有时间戳的日期轴,如下所示:

serie.set(new Date().getTime(), new Double(123));

或者

serie.set("2015-09-08", new Double(123));

将DateAxis放在LineChartModel中,如下所示:

DateAxis axis = new DateAxis("Data da inspeção");
linearModel.setZoom(true);
linearModel.getAxes().put(AxisType.X, axis);
linearModel.setExtender("linhaSetor");

并在extender.js格式化您的日期:

function linhaSetor() {
    this.cfg.axes.xaxis.tickOptions = {
        show : true,
        angle : 45,
        formatString : '%d/%m/%y %Hh'
    };
}

您甚至不需要按顺序放置数据。