只有满足某些条件才能更改特定的刻度标记。
{
xAxis: {
categories: ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00',
'07:00', '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',
'16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],
labels: {
formatter() {
const isCurrentHour = this.value === moment().format('HH:00');
if (isCurrentHour) {
return (`<span class="currentHour">${this.value}</span>`);
}
return this.value;
}
}
}
}
答案 0 :(得分:1)
你不能通过配置来做到这一点,但是你可以通过包装tick.render()
方法来实现它 - 它正在扩展Highcharts,阅读更多相关信息here
因此,您需要做的是更改tick.mark
形状和tick.label
样式。
const H = Highcharts;
H.wrap(H.Tick.prototype, 'render', function (p, i, o, op) {
p.call(this, i, o, op);
const axis = this.axis;
if (axis.isXAxis && (this.pos === 18 || this.pos === 8)) {
console.log(this)
const mark = this.mark;
const label = this.label;
const d = mark.d.split(' ').map(v => {
var n = Number(v);
return H.isNumber(n) ? n : v;
});
d[2] -= 5;
d[5] += 20;
mark.attr({
'stroke-width': 1,
stroke: 'black',
d: d.join(' ')
});
label.css({
fontSize: '20px',
fontWeigth: 'bold',
color: 'black'
});
label.attr({
y: label.xy.y - label.getBBox().height
})
}
});