You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ECharts中修改鼠标悬停时X轴/Y轴名称的样式?

解决ECharts轴名称富文本鼠标悬停样式变化问题

ECharts的nameTextStyle配置确实不支持直接为轴名称的富文本设置鼠标悬停状态样式,得通过事件监听+动态修改的方式实现,具体步骤如下:

  • 第一步:给轴名称富文本添加标识
    先给目标轴的富文本块设置id或者明确的富文本标签,方便后续定位修改:
xAxis: {
  name: '{axisName|自定义轴名称}',
  nameTextStyle: {
    rich: {
      axisName: {
        fontSize: 14,
        color: '#333',
        // 这里写初始样式
      }
    }
  }
}
  • 第二步:监听鼠标事件动态切换样式
    通过监听图表的mouseover和mouseout事件,判断鼠标是否在轴名称区域,再用dispatchAction修改富文本样式:
const myChart = echarts.init(document.getElementById('chart'));

// 鼠标悬停时修改样式
myChart.on('mouseover', params => {
  if (params.componentType === 'axis' && params.axisName === 'xAxis') {
    myChart.dispatchAction({
      type: 'richTextStyle',
      componentType: 'xAxis',
      name: true,
      richTextIndex: 0, // 对应富文本块的顺序索引,第一个块就是0
      style: {
        fontSize: 16,
        color: '#ff4500',
        textShadowBlur: 4,
        textShadowColor: 'rgba(0,0,0,0.3)',
        textShadowOffsetX: 1,
        textShadowOffsetY: 1
      }
    });
  }
});

// 鼠标离开时恢复初始样式
myChart.on('mouseout', params => {
  if (params.componentType === 'axis' && params.axisName === 'xAxis') {
    myChart.dispatchAction({
      type: 'richTextStyle',
      componentType: 'xAxis',
      name: true,
      richTextIndex: 0,
      style: {
        fontSize: 14,
        color: '#333'
      }
    });
  }
});
  • 关键注意点:
    • 如果是Y轴,把代码里的xAxis替换成yAxis即可;
    • richTextIndex要和富文本块的顺序对应,多个富文本块需要分别设置索引;
    • 该方法需要ECharts 5.0及以上版本支持,旧版本请先升级。

内容的提问来源于stack exchange,提问作者Rahul Shrivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:07:05