echarts bar markArea

之前产品给的需求是,在特定的x轴上,给某些指标加上背景颜色,看了Echarts API的markArea,发现不能满足需求。

如果直接使用markArea,且x轴的type为category的话,配置如下:

xAxis: {
  type: 'category',
  ...
},
series: [{
  ...,
  markArea: {
    data: [[
      {
        xAxis: '11月3日',
        itemStyle: {
          color: 'rgba(112, 100, 250, 0.12)',
          borderWidth: 1,
          borderColor: 'rgba(112, 100, 250, 0.6)'
        } 
      },
      {
        xAxis: '11月6日'
      }
    ]] 
  }
}]

得到的效果图为:

echarts1
可以看出,不能完整包含指定的x轴。

后面google(参考链接:Echart: How to set mark area to fill sections in xAxis)发现了一个近似满足需求的处理,思路是通过计算bar的宽度,从而相加得到的,但不能完整包含x轴,效果如下图所示:
echart2

既然不能找到完全满足需求的,那就只能写骚操作了。

思路如下:
(1)多定义一条x轴,type设置为value,但不显示
(2)多定义一个series,将markArea配置放在这个series上,且将该series挂载在(1)的x轴上

xAxis: [
  {...}, 
  {
    type: 'value',
    min: 0,
    max: xAxisData.length, // x轴数据的长度
    show: false,
    silent: true,
    axisPointer: {
      show: false
    }
  }
],
series: [
  {...},
  {
    name: '占位',
    type: 'line',
    xAxisIndex: 1, // 对应第二个x轴
    silent: true,
    markArea: {
      data: [[
        {
          xAxis: '3',
          itemStyle: {
            color: 'rgba(112, 100, 250, 0.12)',
            borderWidth: 1,
            borderColor: 'rgba(112, 100, 250, 0.6)'
          } 
        },
        {
          xAxis: '6'
        }
      ]],  
    }
]

最终的效果图为:

echart3

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值