1

我正在使用以下代码段来显示我的图表:

     xaxis: {
        min: '2012-01-01 00:00:00.0',
        max: '2012-04-01 00:00:00.0',
        renderer : "$.jqplot.DateAxisRenderer",
        rendererOptions : {
           "tickRenderer" : "$.jqplot.CanvasAxisTickRenderer"
        },
        numberTicks: 4,
        showTickMarks : false,
        tickOptions:{
           angle:0,
           formatString:'%b %Y'
        }
    },

    Data :[
          ['2012-01-01 00:00:00.0', 0]
        , ['2012-02-01 00:00:00.0', 0]
        , ['2012-03-01 00:00:00.0', 0]
        , ['2012-04-01 00:00:00.0', 0]
    ]

而不是显示:2012 年 1 月、2012 年 2 月、2012 年 3 月、2012 年 4 月,而是显示:2012 年 1 月、2012 年 1 月、2012 年 3 月、2012 年 4 月。

在进一步调试时,我发现第二点实际上是 2012 年 1 月 31 日,在应用格式时显示为 2012 年 1 月。

我怎样才能确保它正确显示月份。

提前致谢。

4

1 回答 1

0

我注意到您的代码中有一些“混乱”。tickRenderer应该在参数之外rendererOptions。此外,它周围和渲染器类周围的引号也不是必需的。

我在询问您是否希望每个显示间隔为一个月的刻度?因此,请改用 tickInterval 参数。例如:tickInterval: "1 months"

就像我在其他答案中展示的那样。

编辑: 我把它整理好了。显然没有必要限制滴答的数量,因为它们被错误地计算了。既然要受益于tickInterval你被迫使用minmax参数,所以,只有让脚本算出滴答数才对,对吧?:)

因此,要让它按照您想要的方式工作,只需删除带有numberTicks. 它显示在这里。

注意: 我意识到为什么会有这种numberTicks行为。之所以如此,是因为它使刻度之间的距离相等。

从 2012 年 1 月 1 日到 5 月 1 日,我们有 122 天。如果我们将天数除以 numberTicks - 1(即 4),我们得到 30.5。因此,我们有 1 月 1 日、1 月 31 日、3 月 1 日、3 月 31 日和 5 月 1 日。

于 2012-04-26T17:31:32.637 回答