Echarts之柱形图--每个柱形图颜色不同且带图例

需求:
在这里插入图片描述
鼠标移入:
在这里插入图片描述
1、容器:

<div id="bar" style="width: 700px; height: 380px; background: rgba(2, 15, 43, 0.7)"></div>

2、在methods中

methods:{
	initChart() { 
      // 源数据
      let datas = [
        { value: 1048, name: "搜索引擎" },
        { value: 735, name: "直接访问" },
        { value: 580, name: "邮件营销" },
        { value: 484, name: "联盟广告" },
        { value: 300, name: "视频广告" },
      ];
      // 目标数据
      /* 
        var data = {
          name: "视频广告",
          type: "bar",
          barWidth: 25,//柱图宽度
          stack: "广告",
          data: [0, 0, 0, 154],
        }; 
      */
      //
      let seriesArr= [];//series
      let XLabel = [];//x轴数据
      datas.map((item, index) => {
        XLabel.push(item.name);
        let obj = {};
        obj.name = item.name;
        obj.type = "bar";
        obj.barWidth = 25;
        obj.stack = "广告";
        obj.data = [];
        for (var i = 0; i <= index; i++) {
          if (i != index) {
            obj.data.push(0);
          } else {
            obj.data.push(item.value);
          }
        }
        seriesArr.push(obj);
      });
      var option = {
        color: ["#5599EC", "#00EA9C", "#F9CE16", "#FF913F", "#00FFF8"],
        legend: {
          top: "3%",
          right: "5%",
          icon: "rect",
          itemWidth: 13,
          itemHeight: 13, //图例宽高
          textStyle: {
            color: "#A0B2D3",
            fontSize: 20,
          },
        },
        grid: {
          left: "5%",
          right: "5%",
          bottom: "5%",
          containLabel: true,
        },
        tooltip: {
          //trigger: 'axis',    //显示其他分类
          axisPointer: {
            // 坐标轴指示器,坐标轴触发有效
            type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
          },
          formatter: function (params) {
            return (
              '<span style="font-size:20px">' +
              params.name +
              "<br/>" +
              params.marker +
              '<span style="color:' +
              params.color +
              ';font-size:20px;">' +
              params.value +
              "个" +
              "</span>" +
              "</span>"
            );
          },
        },
        xAxis: [
          {
            type: "category",
            data:XLabel,
            axisTick: {
              // 轴刻度
              show: false,
            },
            axisLabel: {
              // 轴文字
              color: "#A0B2D3",
              fontSize: 20,
            },
            axisLine: {
              // 轴线
              show: false,
            },
          },
        ],
        yAxis: [
          {
            type: "value",
            name: "个",
            nameTextStyle: {
              color: "#A0B2D3",
              fontSize: 20,
              padding: [0, 0, 0, -30], //name文字位置 对应 上右下左
            },
            axisTick: {
              // 轴刻度
              show: false,
            },
            splitLine: {
              // 网格线
              show: false,
            },
            axisLine: {
              // 轴线
              show: false,
            },
            axisLabel: {
              // 轴文字
              color: "#A0B2D3",
              fontSize: 20,
            },
          },
        ],
        //series:[
          // {
          //   name: "直接访问",
          //   type: "bar",
          //   barWidth: 25,
          //   stack: "广告",
          //   data: [320],
          // },
          // {
          //   name: "邮件营销",
          //   type: "bar",
          //   barWidth: 25,
          //   stack: "广告",
          //   data: [0, 132],
          // },
          // {
          //   name: "联盟广告",
          //   type: "bar",
          //   stack: "广告",
          //   barWidth: 25,
          //   data: [0, 0, 191],
          // },
          // {
          //   name: "视频广告",
          //   type: "bar",
          //   barWidth: 25,
          //   stack: "广告",
          //   data: [0, 0, 0, 154],
          // },
        series: seriesArr,
      };

      let myChart = this.$echarts.init(document.getElementById("bar"));
      myChart.setOption(option);
      window.addEventListener("resize", function () {
        myChart.resize();
      });
    },
}

3、

 mounted() {
    this.initChart();
  },

以上

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值