柱状图

描述:当前是关于Echarts图表中的 示例。
 
            
let color0 = ['#8b3c2f', '#7c4f4a', '#cc1c00', '#ff2e00', '#a10400', '#90909c']//红  上到下6种颜色
let color1 = ['#80562e', '#592f31', '#ca8200', '#fa7e00', '#a47c00', '#90909c']//橙  上到下6种颜色
let color2 = ['#7f7c37', '#4e5b52', '#fdd615', '#eff95c', '#ffc309', '#90909c']//黄  上到下6种颜色
let color3 = ['#377163', '#537870', '#29cc6f', '#3bd867', '#00a27d', '#90909c']//青  上到下6种颜色
//---------------头---------阴影-------阴面---------柱上------柱下-------圈-----
var Arr = [
  {
    name: '微博',
    value: 100
  },
  {
    name: '微信',
    value: 90
  },
  {
    name: '新浪',
    value: 70
  },
  {
    name: 'QQ',
    value: 60
  },
  {
    name: '飞信',
    value: 50
  }
]
function color (c) {
  let str = ''
  switch (c) {
    case 0:
      str = color0[0]
      break;
    case 1:
      str = color1[0]
      break;
    case 2:
      str = color2[0]
      break;
    case 3:
      str = color3[0]
      break;
    default:
      str = color3[0]
  }
  return str
}
function colorOne (c) {
  let str = ''
  switch (c) {
    case 0:
      str = color0[4]
      break;
    case 1:
      str = color1[4]
      break;
    case 2:
      str = color2[4]
      break;
    case 3:
      str = color3[4]
      break;
    default:
      str = color3[4]
  }
  return str
}
function colorTwo (c) {
  let str = ''
  switch (c) {
    case 0:
      str = color0[3]
      break;
    case 1:
      str = color1[3]
      break;
    case 2:
      str = color2[3]
      break;
    case 3:
      str = color3[3]
      break;
    default:
      str = color3[3]
  }
  return str
}
function colorThree (c) {
  let str = ''
  switch (c) {
    case 0:
      str = color0[4]
      break;
    case 1:
      str = color1[4]
      break;
    case 2:
      str = color2[4]
      break;
    case 3:
      str = color3[4]
      break;
    default:
      str = color3[4]
  }
  return str
}
function colorFour (c) {
  let str = ''
  switch (c) {
    case 0:
      str = color0[1]
      break;
    case 1:
      str = color1[1]
      break;
    case 2:
      str = color2[1]
      break;
    case 3:
      str = color3[1]
      break;
    default:
      str = color3[1]
  }
  return str
}
function colorFive (c) {
  let str = ''
  switch (c) {
    case 0:
      str = color0[2]
      break;
    case 1:
      str = color1[2]
      break;
    case 2:
      str = color2[2]
      break;
    case 3:
      str = color3[2]
      break;
    default:
      str = color3[2]
  }
  return str
}



option = {
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true,
      },
      xAxis: [
        {
          data: Arr.map(item => item.name),
          axisTick: {
            show: false,
          },
          axisLine: {
            show: false,
          },
          axisLabel: {
            margin: 30,
            fontSize: 16,
            color: '#707FB3',
          },
        },
      ],
      yAxis: {
        splitLine: {
          show: false,
        },
        axisTick: {
          show: false,
        },
        axisLine: {
          show: false,
        },
        axisLabel: {
          show: false,
        },
      },
      series: [
        {
          name: '', // 下—--—头部y样式
          type: 'pictorialBar',
          symbolSize: [54, 15],
          symbolOffset: [0, -6],
          z: 12,
          data: Arr.map((item, index) => {
            return { // 第二个下-----------------------------------------------------------------------------------头部
              name: '',
              value: item.value,
              symbolPosition: 'end',
              itemStyle: {
                normal: {
                  color: colorFive(index),
                },
              },
            }
          })
        },
        {
          name: '',
          type: 'pictorialBar',//底圈圆
          symbolSize: [54, 15],
          symbolOffset: [0, 10],
          z: 12,
          data: Arr.map((item, index) => {
            return {
              name: '',
              value: item.value,
              itemStyle: {
                normal: {
                  color: colorOne(index),
                },
              },
            }
          })
        }, {
          name: '',  //底外圈圆
          type: 'pictorialBar',
          symbolSize: [70, 25],
          symbolOffset: [0, 24],
          z: 11,
          data: Arr.map((item, index) => {
            return {
              name: '',
              value: item.value,
              itemStyle: {
                normal: {
                  color: 'transparent',
                  borderColor: color0[5],
                  borderWidth: 2,
                },
              },
            }
          })
        },
        {
          name: '邮件营销',
          type: 'bar',
          barWidth: 54,
          barGap: '-100%',
          // itemStyle: {
          //   color: window.echarts.graphic.LinearGradient(0, 0, 0, 1, [
          //     {
          //       offset: 0,
          //       color: 'rgba(55,255,249,1)',
          //     },
          //     {
          //       offset: 1,
          //       color: 'rgba(0,222,215,0.2)',
          //     },
          //   ]),
          // },
          label: {
            // 下 文字标签
            normal: {
              show: false,
              position: 'top',
              distance: -70,
              textStyle: {
                color: '#fff',
                fontSize: 40,
              },
            },
          },
          data: Arr.map((item, index) => {
            return {
              name: '', // 下  ----柱状渐变
              value: item.value,
              itemStyle: {
                normal: {
                  color: {
                    x: 0,
                    y: 0,
                    x2: 0,
                    y2: 1,
                    type: 'linear',
                    global: false,
                    colorStops: [
                      {
                        offset: 0,
                        color: colorTwo(index), //上
                      },
                      {
                        offset: 1,
                        color: colorThree(index), //下
                      },
                    ],
                  },
                },
              }
            }
          })
        },
        {
          type: 'bar',
          barWidth: 54,
          barGap: '-100%',
          stack: '广告',
          itemStyle: {
            color: 'transparent',
          },
          data: Arr.map((item) => item.value)
        },
        {
          name: '', // 上-----------------------------------------------------------------头部颜色样式
          type: 'pictorialBar',
          symbolSize: [54, 15],
          symbolOffset: [0, -10],
          z: 12,
          data: Arr.map((item, index) => {
            return {
              name: '',
              value: item.value + 19.5, // 上部-------高度
              symbolPosition: 'end',
              itemStyle: {
                normal: {
                  color: color(index),
                },
              },
            }
          })
        },
        {
          name: '', // 上连下----底部颜色样式
          type: 'pictorialBar',
          symbolSize: [54, 25],
          symbolOffset: [0, -20],
          z: 12,
        },
        {
          name: '联盟广告',
          type: 'bar',
          barWidth: 54,
          barGap: '-100%',
          stack: '广告',
          // itemStyle: {
          //   color: window.echarts.graphic.LinearGradient(0, 0, 0, 1, [
          //     {
          //       offset: 1,
          //       color: '#b10006',
          //     },
          //     {
          //       offset: 1,
          //       color: '#815041',
          //     },
          //   ]),
          // },
          label: {
            normal: {
              show: true,
              position: 'top',
              distance: 5,
              textStyle: {
                color: '#fff',
                fontSize: 18,
              },
            },
          },
          data: Arr.map((item, index) => {
            return {
              name: item.name,
              value: '20', // 上面高度
              trueVal: '20',
              itemStyle: {
                normal: {
                  color: {
                    x: 0,
                    y: 0,
                    x2: 0,
                    y2: 1,
                    type: 'linear',
                    global: false,
                    colorStops: [
                      {
                        offset: 1,
                        color: colorFour(index),
                      },
                      {
                        offset: 1,
                        color: colorFour(index),
                      },
                    ],
                  },
                },
              },
            }
          })
        },
      ],
};