这是图表目前的样子:
如果您看到 x 轴,您可以看到月份和年份,而我只想显示年份。
令人惊讶的是,如果您在系列中再添加一个数据条目
[Date.UTC(2011,2,31), 11.30]
x 轴自动格式化并仅显示年份
例如 - http://jsfiddle.net/YWLpr/3/
因此,如果有 7 个数据点,我可以在 x 轴上看到年份,但如果少于 7 个数据点,我可以看到月份和年份,这不是我想要的。如何停止这种自动格式化并仅在 x 轴上显示少于 7 个数据点的年份。
这是图表目前的样子:
如果您看到 x 轴,您可以看到月份和年份,而我只想显示年份。
令人惊讶的是,如果您在系列中再添加一个数据条目
[Date.UTC(2011,2,31), 11.30]
x 轴自动格式化并仅显示年份
例如 - http://jsfiddle.net/YWLpr/3/
因此,如果有 7 个数据点,我可以在 x 轴上看到年份,但如果少于 7 个数据点,我可以看到月份和年份,这不是我想要的。如何停止这种自动格式化并仅在 x 轴上显示少于 7 个数据点的年份。
如果您调整图表的大小,则缩放级别将从一年切换到一个月,因此您还必须为月份添加格式选项:
dateTimeLabelFormats: {
month: '%Y',
year: '%Y'
}
@Pawel 的回答并没有完全适合我。我可以看到重复的年份值,这不是我想要的。
以下代码对我有用。
xAxis: {
type: 'datetime',
dateTimeLabelFormats: {
year: '%Y'
},
tickInterval: Date.UTC(2010, 0, 1) - Date.UTC(2009, 0, 1)
}
您始终可以使用label.formatter
or label.format
,请参阅:http: //jsfiddle.net/PwEnd/14/
文档:http ://api.highcharts.com/highcharts#xAxis.labels.format
我不得不使用@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)
},
格式化程序几乎覆盖了所有方便的标签,而不必处理年、月等。这将保证始终显示正确的标签。
xAxis: [{
type: "datetime",
tickInterval: 24 * 3600 * 1000 * 365 // mills in a year.
}],
从文档:
请注意,日期时间轴基于毫秒,因此例如一天的间隔表示为 24 * 3600 * 1000