You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在ECharts分组柱状图中添加中间分隔线区分数据集?

在ECharts柱状图中添加数据集分隔线的两种方法

嘿,针对你的需求,我有两个简单的方法帮你在两个数据集之间添加贯穿图表的分隔线,都是基于你现有的ECharts配置来修改:

方法一:利用X轴的分割线(Split Line)

这是最简便的方法,因为你的X轴是category类型,开启splitLine后,默认会在两个分类之间生成垂直分隔线,完美匹配你的需求。

只需要在你的xAxis配置里添加splitLine属性即可:

xAxis: {
    type: 'category',
    data: ['marker_01', 'marker_02'],
    axisLine: { show: true },
    axisTick: { show: true },
    axisLabel: { /* 你的原有配置 */ },
    // 新增以下分割线配置
    splitLine: {
        show: true,
        lineStyle: {
            color: '#ccc', // 自定义线条颜色
            lineWidth: 2,  // 线条粗细
            // 可选:设置虚线样式
            // lineDash: [6, 3]
        }
    }
}

这样配置后,图表会自动在marker_01marker_02之间生成一条贯穿整个Y轴的垂直分隔线,完全不需要额外计算坐标。

方法二:使用自定义图形组件(Graphic Component)

如果你需要更灵活的控制(比如调整线条位置、样式,或者在非对称布局中使用),可以用ECharts的graphic组件手动绘制线条:

在你的整个frequencyChartoption对象中添加graphic属性:

const frequencyChartoption = {
    title: {},
    tooltip: {},
    legend: { data: ['Frekvens', 'Vigtighed'] },
    xAxis: { /* 你的原有X轴配置 */ },
    yAxis: { /* 你的原有Y轴配置 */ },
    series: [/* 你的原有系列配置 */],
    // 新增自定义图形配置
    graphic: [{
        type: 'line',
        shape: {
            x1: '50%', // 水平方向居中(两个分类的中间位置)
            y1: 0,     // 线条顶部起点(图表顶端)
            x2: '50%',
            y2: '100%' // 线条底部终点(图表底端)
        },
        style: {
            stroke: '#999', // 线条颜色
            lineWidth: 2,
            lineDash: [5, 3] // 虚线样式,可选
        },
        // 确保线条在柱子下方,避免遮挡数据
        z: 0
    }]
};

关键说明:

  • z: 0用来设置线条的层级,确保它显示在柱状图的下方,不会遮挡你的数据条和标签。
  • 如果后续X轴分类数量变化,只需要调整x1x2的百分比值即可(比如3个分类,要在第1和第2之间加线,就设为33.33%)。

你可以根据自己的需求选择其中一种方法,方法一最适合你的当前场景,操作起来最快!

内容的提问来源于stack exchange,提问作者Marc Rasmussen

火山引擎 最新活动