横向柱状图

描述:当前是关于Echarts图表中的 柱状图 示例。
 
            let tdata = [
  { code: '公安机关', stock: '19785', fundPost: '19785' },
  { code: '住房和城乡建筑部门', stock: '16064', fundPost: '16064' },
  { code: '教育管理部门', stock: '14319', fundPost: '14319' },
  { code: '交通部门', stock: '13100', fundPost: '13100' },
  { code: '其他', stock: '12054', fundPost: '12054' },
];
function contains(arr, dst) {
  var i = arr.length;
  while ((i -= 1)) {
    if (arr[i] == dst) {
      return i;
    }
  }
  return false;
}

var attackSourcesColor = [
  new echarts.graphic.LinearGradient(0, 1, 1, 1, [
    { offset: 0, color: '#EB3B5A' },
    { offset: 1, color: '#FE9C5A' },
  ]),
  new echarts.graphic.LinearGradient(0, 1, 1, 1, [
    { offset: 0, color: '#FA8231' },
    { offset: 1, color: '#FFD14C' },
  ]),
  new echarts.graphic.LinearGradient(0, 1, 1, 1, [
    { offset: 0, color: '#F7B731' },
    { offset: 1, color: '#FFEE96' },
  ]),
  new echarts.graphic.LinearGradient(0, 1, 1, 1, [
    { offset: 0, color: '#395CFE' },
    { offset: 1, color: '#2EC7CF' },
  ]),
];
var attackSourcesColor1 = [
  '#EB3B5A',
  '#FA8231',
  '#F7B731',
  '#3860FC',
  '#1089E7',
  '#F57474',
  '#56D0E3',
  '#1089E7',
  '#F57474',
  '#1089E7',
  '#F57474',
  '#F57474',
];
var attaData = [];
var attaName = [];
var topName = [];
tdata.forEach((it, index) => {
  attaData[index] = parseFloat(it.fundPost).toFixed(2);
  attaName[index] = it.stock;
  topName[index] = `${it.code} ${it.stock}`;
});
var salvProMax = []; //背景按最大值
for (let i = 0; i < attaData.length; i++) {
  salvProMax.push(attaData[0]);
}
function attackSourcesDataFmt(sData) {
  var sss = [];
  sData.forEach(function (item, i) {
    let itemStyle = {
      color: i > 3 ? attackSourcesColor[3] : attackSourcesColor[i],
    };
    sss.push({
      value: item,
      itemStyle: itemStyle,
    });
  });
  return sss;
}

option = {
  backgroundColor: '#000',
  tooltip: {
    show: false,
    backgroundColor: 'rgba(3,169,244, 0.5)', //背景颜色(此时为默认色)
    textStyle: {
      fontSize: 16,
    },
  },
  color: ['#F7B731'],
  legend: {
    show: false,
    pageIconSize: [12, 12],
    itemWidth: 20,
    itemHeight: 10,
    textStyle: {
      //图例文字的样式
      fontSize: 10,
      color: '#fff',
    },
    selectedMode: false,
    // data: ['个人所得(亿元)'],
  },
  grid: {
    left: '5%',
    right: '2%',
    width: '80%',
    bottom: '2%',
    top: '8%',
    containLabel: true,
  },
  xAxis: {
    type: 'value',

    splitLine: {
      show: false,
    },
    axisLabel: {
      show: false,
    },
    axisTick: {
      show: false,
    },
    axisLine: {
      show: false,
    },
  },
  yAxis: [
    {
      type: 'category',
      inverse: true,
      axisLine: {
        show: false,
      },
      axisTick: {
        show: false,
      },
      axisPointer: {
        label: {
          show: true,
          //margin: 30
        },
      },
      pdaaing: [5, 0, 0, 0],
      postion: 'right',
      data: attaName,
      axisLabel: {
        show: false,
        margin: 30,
        fontSize: 10,
        align: 'left',
        padding: [2, 0, 0, 0],
        color: '#000',
        rich: {
          nt1: {
            color: '#fff',
            backgroundColor: attackSourcesColor1[0],
            width: 13,
            height: 13,
            fontSize: 10,
            align: 'center',
            borderRadius: 100,
            lineHeight: '5',
            padding: [0, 1, 2, 1],
            // padding:[0,0,2,0],
          },
          nt2: {
            color: '#fff',
            backgroundColor: attackSourcesColor1[1],
            width: 13,
            height: 13,
            fontSize: 10,
            align: 'center',
            borderRadius: 100,
            padding: [0, 1, 2, 1],
          },
          nt3: {
            color: '#fff',
            backgroundColor: attackSourcesColor1[2],
            width: 13,
            height: 13,
            fontSize: 10,
            align: 'center',
            borderRadius: 100,
            padding: [0, 1, 2, 1],
          },
          nt: {
            color: '#fff',
            backgroundColor: attackSourcesColor1[3],
            width: 13,
            height: 13,
            fontSize: 10,
            align: 'center',
            // lineHeight: 3,
            borderRadius: 100,
            padding: [0, 1, 2, 1],
            lineHeight: 5,
          },
        },
        formatter: function (value, index) {
          index = contains(attaName, value) + 1;
          if (index - 1 < 3) {
            return ['{nt' + index + '|' + index + '}'].join('\n');
          } else {
            return ['{nt|' + index + '}'].join('\n');
          }
        },
      },
    },
    {
      type: 'category',
      inverse: true,
      axisTick: 'none',
      axisLine: 'none',
      show: true,
      axisLabel: {
        textStyle: {
          color: '#fff',
          fontSize: '20',
        },
      },
      data: attackSourcesDataFmt(attaName),
    },
    {
      //名称
      type: 'category',
      offset: 10,
      position: 'left',
      axisLine: {
        show: false,
      },
      inverse: true,
      axisTick: {
        show: false,
      },
      axisLabel: {
        show: true,
        interval: 0,
        color: ['#fff'],
        // align: 'left',
        // verticalAlign: 'bottom',
        lineHeight: 32,
        fontSize: 10,
      },
      data: topName,
    },
  ],
  series: [
    {
      zlevel: 1,
      name: '',
      type: 'bar',
      barWidth: '26px',
      animationDuration: 1500,
      data: attackSourcesDataFmt(attaData),
      align: 'center',
      itemStyle: {
        normal: {
          barBorderRadius: 13,
        },
      },
      label: {
        show: false,
        fontSize: 10,
        color: '#fff',
        textBorderWidth: 2,
        padding: [2, 0, 0, 0],
      },
    },

    {
      name: '',
      type: 'bar',
      barWidth: 26,
      barGap: '-100%',
      margin: '20',
      data: salvProMax,
      textStyle: {
        //图例文字的样式
        fontSize: 10,
        color: '#fff',
      },
      itemStyle: {
        normal: {
          color: '#142831',
          //width:"100%",
          fontSize: 10,
          //barBorderRadius: 30,
        },
      },
    },
  ],
};