4

这是图表目前的样子:

http://jsfiddle.net/YWLpr/2/

在此处输入图像描述

如果您看到 x 轴,您可以看到月份和年份,而我只想显示年份。

令人惊讶的是,如果您在系列中再添加一个数据条目

 [Date.UTC(2011,2,31), 11.30] 

x 轴自动格式化并仅显示年份

例如 - http://jsfiddle.net/YWLpr/3/

因此,如果有 7 个数据点,我可以在 x 轴上看到年份,但如果少于 7 个数据点,我可以看到月份和年份,这不是我想要的。如何停止这种自动格式化并仅在 x 轴上显示少于 7 个数据点的年份。

4

5 回答 5

2

如果您调整图表的大小,则缩放级别将从一年切换到一个月,因此您还必须为月份添加格式选项:

        dateTimeLabelFormats: {
            month: '%Y',
            year: '%Y'
        }
于 2013-04-30T09:04:59.760 回答
2

@Pawel 的回答并没有完全适合我。我可以看到重复的年份值,这不是我想要的。

以下代码对我有用。

xAxis: {
            type: 'datetime',
            dateTimeLabelFormats: { 
            year: '%Y'
            },
            tickInterval: Date.UTC(2010, 0, 1) - Date.UTC(2009, 0, 1)

        }
于 2013-05-08T15:56:42.393 回答
2

您始终可以使用label.formatteror label.format,请参阅:http: //jsfiddle.net/PwEnd/14/

文档:http ://api.highcharts.com/highcharts#xAxis.labels.format

于 2013-04-30T10:18:50.160 回答
1

我不得不使用@Pawel 和@Sumedh 之间的变体。基本上,关键是滴答间隔。如果不设置间隔,图表将尝试自动放大并显示月份。另一件事是 datetimelabelformats 工作正常,但我确实注意到一个问题,当只有 1 个点时,它仍然会显示月份,即使月份格式设置为只显示年份。下面是对我有用的代码。

xAxis: {
    startOnTick: true,
    type: 'datetime',
    labels:
    {
        formatter: function () {
            return Highcharts.dateFormat("%Y", this.value);
        }
    },
    tickInterval: Date.UTC(2010, 0, 1) - Date.UTC(2009, 0, 1)
},

格式化程序几乎覆盖了所有方便的标签,而不必处理年、月等。这将保证始终显示正确的标签。

于 2014-08-26T15:06:19.523 回答
0
xAxis: [{
    type: "datetime",
    tickInterval: 24 * 3600 * 1000 * 365 // mills in a year. 
}],

文档

请注意,日期时间轴基于毫秒,因此例如一天的间隔表示为 24 * 3600 * 1000

于 2016-04-01T20:39:29.227 回答