vue使用echarts画柱状图(个性化样式)

根据ui设计实现的个性化柱状图,个人第一次弄,所以记录一下,如果你也刚好需要使用,可以借鉴一下:效果图如下

我相信你在使用的时候应该已经在项目可以正常使用echarts,所以就不必过多其他步骤,直接上代码

let option = {
        backgroundColor: 'rgba(0,0,0,0)',
        grid: {
          top: '10%',
          left: '1%',
          right: '1%',
          bottom: '2%',
          containLabel: true
        },
        tooltip: {
          trigger: "axis",
        },
        legend: {
            left: 'right',
            icon: 'circle',
            itemHeight: 10,
            itemWidth: 10,
            textStyle: {
                color: '#fff',
                padding: [3,0,0,0]
            }
        },
        xAxis: {
          type: "category",
          data: this.xAxisData,
          axisTick: {
            alignWithLabel: true,
            lineStyle: {
                color: "#8BACFF",
                width:0.5,
                opacity:0.2
              },
          },
          axisLine: {
            show: false,
            lineStyle: {
              color: '#fff',
              
            },
            },
        },
        yAxis: [
          {
            type: 'value',
            minInterval: 1,
            axisLine: {
              show: false,
            },
            axisTick: {
              show: false,
            },
            splitArea: {
              show: false
            },
            splitLine: {
              show: true,
              lineStyle: {
                color: "#8BACFF",
                width:0.5,
                opacity:0.2
              },
            },
            axisLabel: {
              textStyle: {
                color: "#fff",
                fontSize: 14,
              },
            },
          },
        ],
         series: [ // 数据1,3,5 表示阴影部分,2,4,6表示展示数据
          {
            tooltip: {
              show: false,  //阴影部分不需要展示设置为不显示
            },
            z: 4, //设置层级,阴影部分的层级不能比在作用上的数据层级高
            type: "pictorialBar", //必须设置为这个属性
            symbolSize: ["16", "6"],
            symbolRepeat: "fixed",
            symbol: "image://" + img4, // 阴影小块是一个个的图片,所以这个地方是设置图片路径,img4为设置图片的具体地址
            symbolMargin: '4',
            symbolOffset: [-20, 0],// 这个设置位置,因为我设置的图片大小为18像素,而且每个有三个柱状图,所以第一个设施的位置为-20.
            data: [value,value,value,value] 
          },
          { // 这个为需要展示的数据
            name: '设备总数',
            z: 5, //比阴影层级高
            type: "pictorialBar",
            symbolSize: ["16", "6"],
            animation: true,
            symbolRepeat: "fixed",
            symbolClip: true,
            symbolPosition: "start",
            symbolOffset: [-20, 0],//跟阴影部分设置位置要一样才显示出效果
            symbol: "image://" + img1,
            symbolMargin: '4',
            itemStyle: {
                normal: {
                    color: '#008FFF', 
                }
            },
            data: [5,12,8,17]
          },
          {
            tooltip: {
              show: false,
            },
            z: 4,
            type: "pictorialBar",
            symbolSize: ["16", "6"],
            symbolRepeat: "fixed",
            symbol: "image://" + img4,
            symbolMargin: '4',
            symbolOffset: [0, 0],
            data: [value,value,value,value]
          },
          {
            name: '维修数量',
            z: 6,
            type: "pictorialBar",
            symbolSize: ["16", "6"],
            animation: true,
            symbolRepeat: "fixed",
            symbolClip: true,
            symbolPosition: "start",
            symbolOffset: [0, 0],
            symbol: "image://" + img2,
            symbolMargin: '4',
            itemStyle: {
                normal: {
                    color: '#4EEED8', 
                }
            },
            data: [18,5,19,4]
          },
          {
            tooltip: {
              show: false,
            },
            z: 4,
            type: "pictorialBar",
            symbolSize: ["16", "6"],
            symbolRepeat: "fixed",
            symbol: "image://" + img4,
            symbolMargin: '4',
            symbolOffset: [20, 0],
            data: [value,value,value,value]
          },
          {
            name: '停用数量',
            z: 6,
            type: "pictorialBar",
            symbolSize: ["16", "6"],
            animation: true,
            symbolRepeat: "fixed",
            symbolClip: true,
            symbolPosition: "start",
            symbolOffset: [20, 0],
            symbol: "image://" + img3,
            symbolMargin: '4',
            itemStyle: {
                normal: {
                    color: '#2F50F8', 
                }
            },
            data: [4,19,17,4]
          },
        ],
      }

 其实实现个性化主要在series数据里面,可以根据里面注解大概了解一下具体原理.

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值