横向统计

描述:当前是关于Echarts图表中的 柱状图 示例。
 
              // 默认数据
  let pieData = [
    { value: 160, name: '车间1', },
    { value: 130, name: '车间2', },
    { value: 200, name: '车间3', },
    { value: 180, name: '车间4', },
    { value: 220, name: '车间5', },
    { value: 310, name: '车间6', },
    { value: 110, name: '其他', },
  ];
  // 默认配色
  let colorList = ['#fe8019', '#fec429', '#4a90e2', '#9095a7', '#4cb051', '#ec0019', '#dcb093'];
  let datas = pieData.map(item=>{
    return {
      value: item.value && Number(item.value) || 0,
      name: item.name,
    }
  })
  let sum = datas.reduce((per, cur) => {
    if (per <= cur.value) {
      per = cur.value;
    }
    return per
  }, 0);
  sum = sum + Math.floor(sum / 10);
  let dataMAX = datas.map(item=> sum );
  let option = {
    tooltip: {
      trigger: 'axis', //axis , item
      axisPointer: { type: 'shadow' }, //触发效果 移动上去 背景效果
      formatter: (params) => {
        return params[1].marker + ' ' + params[1].name + ' ' + (params[1].value || 0)
      },
    },
    grid: {
      left: '5%',
      right: '5%',
      bottom: 10,
      top:'10%',
      containLabel: true,
    },
    xAxis: {
      show: false,
      type: 'value',
    },
    yAxis: [
      {
        type: 'category',
        nameGap: 3,
        inverse: false, // 是否翻转
        nameTextStyle: {
          fontSize: 16,
          color: "#3e3e3e",
          align: "center",
          fontWeight:'700',
          padding: [0, 0, 0, -36]
        },
        axisLabel: {
          show: true,
          align: 'right',
          textStyle: {
            fontSize: 14,
            color: '#282c34',
            rich: {
              name: {
                padding: [0,10,0,50],
                width:150,
                borderWidth:1,
              },
            },
          },
          formatter: (name) => {
            var index = datas.map((item) => item.name).indexOf(name) + 1;
            return [
              // '{' + 'index' + '|' +'NO.'+ index + '}',
              '{name|' + name + '}',
            ].join('');
          },
        },
        splitLine: {
          show: false,
        },
        axisTick: {
          show: false,
        },
        axisLine: {
          show: false,
        },
        data: datas.map((item) => item.name),
      },
      {
        nameGap: 5,
        inverse: false, // 是否翻转
        nameTextStyle: {
          fontSize: 12,
          color: "#3e3e3e",
          align: "center",
          fontWeight:'700',
          padding: [0, -60, 0, 0]
        },
        type:'category',
        axisLabel:{
          show:true,
          margin:30,//右侧y轴数字的外边距
          textStyle: {
            fontSize: 14,
            color: '#282c34',
          },
          formatter: (value) => {
            return value
          },
        },
        splitLine: {
          show: false,
        },
        axisTick: {
          show: false,
        },
        axisLine: {
          show: false,
        },
        data: datas.map((item) => {
          return item.value
        }),
      }
    ],
    series: [
      {
        name: '背景',
        type: "bar",
        stack: '总量',
        barGap: '-100%',
        symbol: 'fixed',
        itemStyle: {
          normal: {
            color: '#f6f8f9'
          },
        },
        data: dataMAX,
        animation: false, //关闭动画
        barWidth: 20,
        z: 0
      },
      {
        name: '能源指数',
        type: 'bar',
        zlevel: 1,
        label: {
          show: false,
          position: 'right', // 位置
          color: '#282c34',
          fontSize: 14,
          distance: 10, // 距离
          // formatter: '{c}%' // 这里是数据展示的时候显示的数据
        }, // 柱子上方的数值
        itemStyle: {
          normal: {
            barBorderRadius: 0,
            color: (params) => {
              return colorList[params.dataIndex]
            },
          },
        },
        barWidth: 20,
        data: pieData.map(item=>item.value),
      },
    ],
  };