【问题标题】:jQuery HighCharts: DateTime X Axis Data label issuesjQuery HighCharts:日期时间 X 轴数据标签问题
【发布时间】:2014-05-29 22:27:00
【问题描述】:

我有一堆基于日期时间的每月数据点,我需要将它们映射到折线图中。我要完成的工作:

  1. 我需要在图表上绘制所有点
  2. 我需要所有 3 个系列的折线图从左下角的第一个数据点(1 月 1 日)开始。
  3. 第一个数据点需要显示一个文本短语,其余的都需要保留为格式化日期。

请看看我的 jsfiddle。 http://jsfiddle.net/FWGdw/7/

$(function () {
    $('#container').highcharts({
        chart: { type: 'spline' },
        title: { text: 'Performance Chart' },
        subtitle: { text: 'monthly Date inverval' },
        xAxis: { 
            type: 'datetime',
            dateTimeLabelFormats: { month: '%b-%y', year: '%b-%y'},
            /*showFirstLabel: false,
            startOnTick: true*/

        },
        yAxis: { min: 0 },
        tooltip: { headerFormat: '<b>{series.name}</b><br>', 
                  pointFormat: '{point.x:%e. %b}: {point.y:.2f} m'},
        series: [{
            name: '1st Series',
            data: [
                [Date.UTC(2013, 0, 31), 0],
                [Date.UTC(2013, 1, 28), 0.6],
                [Date.UTC(2013, 2, 31), 1.7],
                [Date.UTC(2013, 3,  30), 2.8],
                [Date.UTC(2013, 4,  31), 0.6],
                [Date.UTC(2013, 5, 30), 3.6],
                [Date.UTC(2013, 6, 31), 3.6],
                [Date.UTC(2013,  7,  31), 2.81],
                [Date.UTC(2013,  8,  30), 0.78],
                [Date.UTC(2013,  9, 31), 0.98],
                [Date.UTC(2013,  10, 30), 1.84],
                [Date.UTC(2013,  11, 31), 1.80],
                [Date.UTC(2014, 0, 31), 0],
                [Date.UTC(2014, 1, 28), 0.6],
                [Date.UTC(2014, 2, 31), 0.7],
                [Date.UTC(2014, 3,  30), 0.8],
                [Date.UTC(2014, 4,  31), 0.6],
                [Date.UTC(2014, 5, 30), 0.6],
                [Date.UTC(2014, 6, 31), 0.6],
                [Date.UTC(2014,  7,  31), 0.81],
                [Date.UTC(2014,  8,  30), 0.78],
                [Date.UTC(2014,  9, 31), 0.98],
                [Date.UTC(2014,  10, 30), 1.84],
                [Date.UTC(2014,  11, 31), 1.80]
            ]
        }, {
            name: '2nd Series',
            data: [
                [Date.UTC(2013, 0, 31), 1],
                [Date.UTC(2013, 1, 28), 3.6],
                [Date.UTC(2013, 2, 31), 2.2],
                [Date.UTC(2013, 3,  30), 4.2],
                [Date.UTC(2013, 4,  31), 4.6],
                [Date.UTC(2013, 5, 30), 5.6],
                [Date.UTC(2013, 6, 31), 0.6],
                [Date.UTC(2013,  7,  31), 0.21],
                [Date.UTC(2013,  8,  30), 2.78],
                [Date.UTC(2013,  9, 31), 0.98],
                [Date.UTC(2013,  10, 30), 2.84],
                [Date.UTC(2013,  11, 31), 1.80],
                [Date.UTC(2014, 0, 31), 4],
                [Date.UTC(2014, 1, 28), 3.6],
                [Date.UTC(2014, 2, 31), 5.7],
                [Date.UTC(2014, 3,  30), 4.8],
                [Date.UTC(2014, 4,  31), 2.6],
                [Date.UTC(2014, 5, 30), 0.1],
                [Date.UTC(2014, 6, 31), 0.9],
                [Date.UTC(2014,  7,  31), 0.81],
                [Date.UTC(2014,  8,  30), 3.78],
                [Date.UTC(2014,  9, 31), 0.98],
                [Date.UTC(2014,  10, 30), 1.84],
                [Date.UTC(2014,  11, 31), 1.80]
            ]
        }, {
            name: '3rd Series',
            data: [
                [Date.UTC(2013, 0, 31), 0],
                [Date.UTC(2013, 1, 28), 0.6],
                [Date.UTC(2013, 2, 31), 0.7],
                [Date.UTC(2013, 3,  30), 0.8],
                [Date.UTC(2013, 4,  31), 0.6],
                [Date.UTC(2013, 5, 30), 0.6],
                [Date.UTC(2013, 6, 31), 0.6],
                [Date.UTC(2013,  7,  31), 1.81],
                [Date.UTC(2013,  8,  30), 7.78],
                [Date.UTC(2013,  9, 31), 7.98],
                [Date.UTC(2013,  10, 30), 1.2],
                [Date.UTC(2013,  11, 31), 1.80],
                [Date.UTC(2014, 0, 31), 0],
                [Date.UTC(2014, 1, 28), 0.6],
                [Date.UTC(2014, 2, 31), 2.2],
                [Date.UTC(2014, 3,  30), 4.8],
                [Date.UTC(2014, 4,  31), 0.6],
                [Date.UTC(2014, 5, 30), 0.6],
                [Date.UTC(2014, 6, 31), 2.6],
                [Date.UTC(2014,  7,  31), 1.81],
                [Date.UTC(2014,  8,  30), 1.78],
                [Date.UTC(2014,  9, 31), 3.98],
                [Date.UTC(2014,  10, 30), 2.84],
                [Date.UTC(2014,  11, 31), 1.80]
            ]
        }]
    });
});
  1. x 轴标签与实际数据点不匹配。他们似乎休息了 1 个月。
  2. 我需要始终显示第一个数据标签,它从 4 月而不是 1 月开始。我还需要第一个 x 轴标签是一个特定的短语,而不是格式化的 31.Jan 日期值。
  3. 最终的 x 轴数据标签适用于 2015 年 1 月,这甚至不是系列中的数据点。

【问题讨论】:

  • 对于#1,这不是 Firefox 中的错误,他们排得很好。这是因为标签之间有很多点,很难分辨两个日期之间的距离。
  • 什么不是 Firefox 的错误?如果将鼠标悬停在数据点上,它不会与 x 轴上的标签映射。此外,数据点从第一个 x 轴标签开始向右。最后一个数据点显示 2015 年 1 月,该数据不包含在该系列中。我更新了我的 jsfiddle 链接。

标签: jquery datetime highcharts


【解决方案1】:

好的,我们到了:

x 轴标签与实际数据点不匹配。他们似乎休息了 1 个月。

他们很好,考虑第一点:Date.UTC(2013, 0, 31) -> 现在是 1 月 31 日。轴的标签始终显示在每月 1 日。

我需要始终显示第一个数据标签,它从 4 月而不是 1 月开始。

创建您自己的tickPositioner

我还需要第一个 x 轴标签是一个特定的短语,而不是格式化的 31.Jan 日期值。

使用labels.formatter。使用this.isFirst 确定第一个标签。

最终的 x 轴数据标签是 2015 年 1 月的,甚至不是系列中的数据点。

设置maxPadding = 0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多