Вы можете использовать функцию xAxis.labels.formatter
, чтобы точно определить, что вы хотите, чтобы показать, как XAxis этикетки:
labels: {
formatter: function() {
var date = new Date(this.value);
var month = date.toDateString().substring(4,7);
var day = date.getDate();
if(this.isFirst || day == 1)
return day + '. ' + month;
return day;
}
}
Вот DEMO.
EDIT:
И если ваш первый день каждого месяца начинается не с 1
, вы можете изменить свой код так:
labels: {
formatter: function() {
var dateArray = this.axis.series[0].xData;
var previousDate = new Date(dateArray[dateArray.indexOf(this.value) - 1]);
var date = new Date(this.value);
var month = date.toDateString().substring(4,7);
var previousMonth = previousDate.toDateString().substring(4,7);
var day = date.getDate();
if(this.isFirst || (previousMonth != month))
return day + '. ' + month;
return day;
}
}
Таким образом, вы можете проверить предыдущий пункт, и если их месяц не совпал, вы можете вернуться день и месяц. Еще один день. Вот DEMO.
Большое спасибо Raeen – Hary
Как бы это сделать, если у меня есть случайное число дней в xaxis, которое всегда начинается с 1? – Hary
@Hary Проверьте изменения, пожалуйста. Измените свои данные и убедитесь, что они работают со случайными днями. –