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