3

我现在正在调整一个高图。以前,我们在带有相关日期的图表上绘制点。该图表还maxZoom:14 * 24 * 3600000允许用户进一步向下钻取。

现在我将日期转换为 Year + Q#。所以现在不是 2011 年 9 月,而是在 X 轴上显示 2011 年第三季度。

但现在我有两个问题。

1)首先是它不允许我缩放,因为我将一个字符串数组传递categories到图表中。我希望它仍然能够缩放,即使 X 轴是字符串。据我所知,缩放虽然使用秒来在 X 轴上的日期之间进行插值。

2)第二个,当我突出显示图表上的数据点时Invalid date,即使我已将图表指定为linear。有没有一种方法可以添加一个显式值以在此处突出显示(即转换为 Year Quarter 之前的实际日期值?)

有没有办法解决这些问题?

相关代码:

plotData=[];
var month = window.countryData.scorecards[i].month - 1;
var year = window.countryData.scorecards[i].year;
categoriesQuarters.push(year + " Q" + parseInt(month/3 + 1));
plotData.push(value);  //Value is either a number or a string, depending on the graph.
....
xAxis: {
        type: 'linear',
        categories: categoriesQuarters
        },
series: [{
                name: graphData.country,
                data: plotData
            }]
4

1 回答 1

1

使用标签格式化程序来做到这一点。

xAxis: {
    labels: {
        formatter: function() {
            var date = Highcharts.dateFormat('%Y-%m', this.value);
            date = date.split('-');
            return date[0] + " Q" + parseInt(date[1]) / 3 + 1;
        }
    }
}

演示

于 2012-12-26T17:52:53.077 回答