【大前端】EChart 多系列柱状图绘制背景图

背景

在ECharts中,设置柱状图背景色,可通过backgroundColor设置,但仅限于单系列柱状图,所以在多系列柱状图中就需要用下面的方式设置

在这里插入图片描述

解决方案

1. xAxis.splitArea

如果设置的背景图的宽度占比100%,则可以使用该方法,因为该方法不能指定背景宽度

在这里插入图片描述

option = {
  color: ["#3398DB"],
  tooltip: {
    trigger: "axis",
    axisPointer: {
      type: "shadow"
    }
  },
  grid: {},
  xAxis: [{
    type: "category",
    data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
    splitArea:{
	    show:true,
	    interval:0,
	    areaStyle:{
	    	//多类目时,可以使用数组设置颜色
	    	color:[
	    	  'rgba(51, 154, 240,0.2)',
	    	  'rgba(51, 154, 240,0.3)',
	    	  'rgba(51, 154, 240,0.4)',
	    	  'rgba(51, 154, 240,0.5)',
	    	  'rgba(51, 154, 240,0.6)',
	    	  'rgba(51, 154, 240,0.7)',
	    	  'rgba(51, 154, 240,0.8)'
	    	]
	    }
    }
  }],
  yAxis: [{
    type: "value"
  }],
  series: [{
    name: "直接访问",
    type: "bar",
    barWidth: "60%",
    data: [10, 52, 200, 334, 390, 330, 220]
  }]
}

自定义图表

自定义图标适用于任何坐标系,且显示样式可根据需要自定义实现,所以更适用于多系列柱状图绘制背景图的需求

自定义图标,起始坐标都是在左上角开始

在这里插入图片描述

option = {
  color: ['#3398DB'],
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'shadow'
    }
  },
  grid: {},
  xAxis: [
    {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
      boundaryGap: true
    }
  ],
  yAxis: [
    {
      type: 'value'
    }
  ],
  series: [
    {
      type: 'custom',
      itemStyle: {
        color: 'rgba(51, 154, 240,0.2)'
      },
      renderItem: function (params, api) {
        
        //获取对应类目的axisTick中心点坐标
        var start = api.coord([api.value(0)]);
        
        //通过坐标系的宽度和类目数,计算单个类目的背景
        var width=(params.coordSys.width/7)*0.6;

        return {
          type: 'rect',
          shape: {
          	// 相对左上角坐标
            x: start[0]-width/2,
            y: params.coordSys.y,
            width:width,
            height: params.coordSys.height,
          },
          style: api.style()
        };
      },
      data: [0, 0, 0, 0, 0, 0, 0]
    },
    {
      name: '直接访问',
      type: 'bar',
      barWidth: '25',
      data: [10, 52, 200, 334, 390, 330, 220]
    },
    {
      name: '直接访问2',
      type: 'bar',
      barWidth: '25',
      data: [10, 52, 200, 334, 390, 330, 220]
    }
  ]
};

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Space Chars

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值