echarts 柱状图 (横)

nonOperatingEchartsHx(operationData){
  let chartDom = document.getElementById("nonOperatingEchartsHx");
  let myChart = echarts.init(chartDom);
  let yLabel = ["投资类 67%", "非投资类 74%", ];

  let option = {
    color: [new echarts.graphic.LinearGradient(
      0,
      0,
      1,
      0,
      [
        {
          offset: 0,
          color: '#C38F60',
        },

        {
          offset: 1,
          color: '#FEDCBB',
        },
      ],
      false
    ), new echarts.graphic.LinearGradient(
      0,
      0,
      1,
      0,
      [
        {
          offset: 0,
          color: '#A7D6EC',
        },

        {
          offset: 1,
          color: '#4E6783',
        },
      ],
      false
    )],
    grid: {
      left: "5%",
      right: "20%",
      bottom: "15%",
      top: "5%",
      containLabel: true,
    },

    tooltip: {
      trigger: "axis",
      axisPointer: {
        type: "none",
      },
    },
    xAxis: {
      show: true,
      type: "value",
      axisLabel: {
        show: true,
        margin: 15,
        textStyle: {
          color:'#9FCCE2'

        },
      },
      axisTick: {
        show: false,
      },
      axisLine: {
        show: true,
        lineStyle: {
          color:'#192935'
        },
      },
      splitLine: {
        show: true,
        lineStyle: {
          type: "dashed",
          color:'#192935'
        },
      },
    },
    yAxis: [
      {
        type: "category",
        axisLine: {
          show: false,
        },
        axisTick: {
          show: false,//坐标上的刻度显示
        },
        axisLabel: {//文字显示
          show: true,
          margin: 15,
          color:'#9FCCE2',
          formatter: function (params, index) {
            console.log("params",params)
            var newParamsName = "";
            var splitNumber = 5;
            var paramsNameNumber = params && params.length;
            if (paramsNameNumber && paramsNameNumber <= 4) {
              splitNumber = 4;
            } else if (paramsNameNumber >= 5 && paramsNameNumber <= 7) {
              splitNumber = 4;
            } else if (paramsNameNumber >= 8 && paramsNameNumber <= 9) {
              splitNumber = 5;
            } else if (paramsNameNumber >= 10 && paramsNameNumber <= 14) {
              splitNumber = 5;
            } else {
              params = params && params.slice(0, 15);
            }

            var provideNumber = 4; //一行显示几个字
            var rowNumber = Math.ceil(paramsNameNumber / provideNumber) || 0;
            if (paramsNameNumber > provideNumber) {
              for (var p = 0; p < rowNumber; p++) {
                var tempStr = "";
                var start = p * provideNumber;
                var end = start + provideNumber;

                if (p == rowNumber - 1) {
                  tempStr = params.substring(start, paramsNameNumber);
                } else {
                  tempStr = params.substring(start, end) + "\n";
                }
                newParamsName += tempStr;
              }

            } else {
              newParamsName = params;
            }
            params = newParamsName
            //给他添加样式
            return  params
          },

        },
        splitLine: {
          show: false,//区域内的刻度显示

        },


        data: yLabel,
      },
    ],
    series: [
      {
        name: "",
        type: "bar",
        zlevel: 1,
        barWidth: 5,
        barGap:'200%',
        label: {//柱状图上面的信息显示
          normal: {
            show: true,
            position: "right",
            textStyle: {
              color:'#FEFEFE'
            },
            formatter: function (value) {
              return value.value + '万';
            },

          }},
        data: [287.72, 121.19],
      },
      {
        name: "",
        type: "bar",
        zlevel: 1,
        barWidth: 5,
        barGap:'150%',//两个柱子之间的间距
        label: {
          normal: {
            show: true,
            position: "right",
            textStyle: {
              color:'#FEFEFE'
            }
          },
          formatter: function (value) {
            return value.value + '万';
          },
          },

        data: [262.52, 178.35,],
      },
    ],
  };

  option && myChart.setOption(option);
  this.echartsEntityArr.push(myChart);

}

 

planEchart(){
        let chartDom = document.getElementById("planEchart");
        let myChart = echarts.init(chartDom);
        let planArr=[2000,321,523,654 ]
        let result = [
          {name:'投资',value:25},
          {name:'居民用户发展',value:55},
          {name:'非居民用户发展',value:85},
          {name:'LNG产销',value:65},
        ]
        let percentData=[25,34,56,21 ]
      let  option = {
          color:new echarts.graphic.LinearGradient(
            0,
            1,
            0,
            0,
            [
              {
                offset: 0,
                color: '#4E6783',
              },
              {
                offset: 1,
                color: '#A7D6EC',
              },
            ],
            false
          ),
          tooltip: {
            show: true,
            trigger: 'item',
            padding: [5, 10],
            backgroundColor: '#5A6872',
            borderColor: 'rgba(3, 11, 44, 0.5)',
            textStyle: {
              color: 'rgba(255, 255, 255, 1)'
            },
          },
          legend: {
            show: false,
          },
          grid: {
            left: '25%',
            right: '16%',
            top: '5%',
            bottom: '5%',
          },
          xAxis: [
            {
              splitLine: {
                show: false,
              },
              type: 'value',
              show: false,
            },
          ],
          yAxis: [
            {
              splitLine: {
                show: false,
              },
              axisLine: {
                show: false,
              },
              type: 'category',
              axisTick: {
                show: false,
              },
              inverse: true,
              data: result.map((item)=>item.name),
              axisLabel: {
                color: '#98B7C9',
                fontSize: 12,
                margin: 10,
              },
            },
            {
              type: 'category',
              inverse: true,
              axisTick: 'none',
              axisLine: 'none',
              show: true,
              axisLabel: {
                textStyle: {
                  color: '#fff',
                  fontSize: 12,
                },
                formatter: function (value) {
                  return value + '%';
                },

              },

              data: percentData.map((item)=>item)
            },
          ],
          series: [
            {
              name: '率',
              type: 'bar',
              barWidth: 5, // 柱子宽度
              MaxSize: 0,
              showBackground: true,
              backgroundStyle: {
                color:'#5A6872',
                borderRadius: 3,
              },
              label: {
                show: true,
                textStyle: {
                  color: '#98B7C9',
                  fontSize: 12,
                },

                formatter: function (params) {
                  return [params.value+'/'+planArr[params.dataIndex]];
                },
                position: 'top', // 位置
                fontSize: 14,
                distance: 4,// 距离
              },
              itemStyle: {
                borderRadius: 5,
              },
              data: result.map((item,index)=>{
                return{
                  name:item.name,
                  value:item.value,
                  itemStyle:{
                    color:new echarts.graphic.LinearGradient(
                      0,
                      0,
                      1,
                      0,
                      [
                        {
                          offset: 0,
                          color: '#4E6783',
                        },

                        {
                          offset: 1,
                          color: '#A7D6EC',
                        },
                      ],
                      false
                    ),
                  }
                }
              }),
            },
          ],
        };

        option && myChart.setOption(option);
        this.echartsEntityArr.push(myChart);

      },

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值