echarts折柱混合结合目标线使用

首先看需求:

产品图中内容可以看出来 此图表涉及到两个y轴 同时折煮混合 折线图会有目标线,柱形图也有目标线。

根据echarts的配置项来看,目标线我们可以使用警戒线markline进行设置,但是警戒线的长度一般是横穿整个图表的虚线,折线图数据可以使用marklin来展示,但是对于柱形图的需求,柱形图要求每个柱状图上方有一截和此柱状图等宽的目标线,如果使用警戒线来设置,宽度不好控制。

由此想到一个办法可以通过xAxis属性设置两个横坐标,第一个展示真实数据,第二个展示目标值数据,但是由于第二个只能展示一条线,那么第二个坐标的值为目标的值颜色设为透明色,并在这个设为透明色的目标值上叠加一个数据很小的柱状图 这样的话,效果看起来是和产品图类似的,同时图例也可以同时控制这三个柱状图,上代码:

两个横坐标:

xAxis: [
     { type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
      axisPointer: {
        type: 'shadow'
      }
     },
      {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        axisLabel: {
          show: false,
        },
        axisLine: {
          show: false,
        },
        axisTick: {
          show: false,
        },
        splitArea: {
          show: false,
        },
        splitLine: {
          show: false,
        },
        axisPointer: {
          type: 'none',
        }
      }//这个坐标的不显示横坐标等等属性
  ],

坐标数据:

 series: [
    {
      name: 'Evaporation',
      type: 'bar',
      xAxisIndex:0,//展示在第一层横坐标上
      tooltip: {
        valueFormatter: function (value) {
          return value + ' ml';
        }
      },
      data: [
        2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6
      ]
    },//实际数据展示,
    {
      name: 'Evaporation',
      xAxisIndex:1,//展示在第二层横坐标上
      stack: 'Group1',//透明的目标柱状图叠加一小段横线,属性为相同值便可垂直叠加
      type: 'bar',
      itemStyle: {
            normal: {
              color: 'rgba(0,0,0,0)' /* 设置bar为透明色隐藏,撑起下面横线 */,
            },
          },
      data: [
         15, 76, 7.0, 23.2, 25.6, 76.7, 135.6,
      ]//目标值的数据
    },
    {
      name: 'Evaporation',
      xAxisIndex:1,//展示在第二层横坐标上
      stack: 'Group1',//叠在透明的目标值柱状图上当做横线
      type: 'bar',
      tooltip: {
        valueFormatter: function (value) {
          return value + ' ml';
        }
      },
       itemStyle: {
            normal: {
              color: 'red' /* 设置bar为隐藏,撑起下面横线 */,
            },
          },
      data: [
        0.5,  0.5,0.5,  0.5, 0.5,  0.5,0.5, 
      ]
    },
    ]

简单效果如图:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts 是一个基于 JavaScript 的开源图表库,可以用来创建各种交互式的数据可视化图表。它提供了丰富的图表类型,包括折线图、柱状图、饼图等等。 要创建一个折柱混合的图表,你可以使用 ECharts 提供的组合图表功能。以下是一个简单的示例代码,展示了如何使用 ECharts 创建一个折柱混合的图表: ```javascript // 引入 ECharts import echarts from 'echarts'; // 初始化图表容器 const chartContainer = document.getElementById('chart'); // 创建图表实例 const chart = echarts.init(chartContainer); // 定义图表配置项 const option = { // 设置图表标题 title: { text: '折柱混合图表示例' }, // 设置图表提示框组件 tooltip: {}, // 设置图例组件 legend: { data: ['折线', '柱状'] }, // 设置 x 轴配置项 xAxis: { data: ['A', 'B', 'C', 'D', 'E'] }, // 设置 y 轴配置项 yAxis: {}, // 设置数据系列 series: [ { name: '折线', type: 'line', data: [10, 20, 30, 40, 50] }, { name: '柱状', type: 'bar', data: [20, 40, 60, 80, 100] } ] }; // 使用配置项生成图表 chart.setOption(option);``` 以上代码中,我们通过引入 ECharts 库,创建一个图表容器,并初始化一个图表实例。然后,定义了图表的配置项,包括标题、提示框、图例、x 轴、y 轴和数据系列等。最后,使用 `setOption` 方法将配置项应用到图表中,即可呈现一个折柱混合的图表。 你可以根据自己的需求,修改配置项中的数据和样式,来创建适合自己的折柱混合图表。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值