Echarts之双横向柱状对比图

需求:
在这里插入图片描述
鼠标移入:
在这里插入图片描述

1、容器:

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

2、在methods中:

methods:{
      initChart() {
      let manData = [100, 200, 300, 400, 500];
      let womanData = [100, 200, 300, 400, 500];
      let option = {
        // color:colors,
        tooltip: {
          show: true,
          trigger: "axis",
          axisPointer: {
            type: "shadow",
          },
          formatter: function (params) {
            // console.log("1222", params);
            return (
              '<span style="font-size: 20px;font-weight: bold;font-family: SourceHanSansCN;">' +
              params[0].seriesName +
              "</span>" +
              "<br/>" +
              params[0].marker +
              '<span style="color:' +
              params[0].color +
              ';font-size: 20px;font-weight: bold;font-family: SourceHanSansCN;">' +
              "\n" +
              params[0].name +
              "岁: " +
              params[0].value +
              "人" +
              "</span>"
            );
          },
        },
        legend: {
          left: "42%", //图例距离左边的距离
          top: "6%",
          textStyle: {
            // 图例文字样式  隐藏文字
            color: "transparent",
          },
          selectedMode: false,
          itemWidth: 15,
          itemHeight: 32, //图例宽高
          itemGap: 90, //图例的间隔
          data: [
            {
              name: "男",
              // icon: `image://${man}`,
              icon:
                "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAfCAMAAAAP3mfjAAAAvVBMVEUAAABAgP9Vqv9Jkv9Vqv9Gov9Onf9JpP9Om/9Mof9SnP9Nm/9Mn/9Onf9Rm/9Rnf9Nn/9OnP9On/tRnvxNnvxQnfxQnvxQnvxOnvxOnf1Pnv1Pnv1Qnv1Pnv1Pnf1Pnv1Pnv1On/1Qnv1Pnv1Onv1On/1Qnv5Qnv5Pnv5Pn/5Qnv5PnvxOnvxPnvxPnvxPnv1Pnv1Pnv1Onv1Pnv1Pnv1Pnv1Pnv1Pnv1Pnv1Pnv1Pnv1Pnv1Pnv1Pnv1Pnv3hJDdrAAAAPnRSTlMABAYHCQsNDhceHyElJykvOD5ITE9WWVxfaHF0g4SFi46PkJGWnKqwuLm9wsPHy87S1d3g4+ju7/T19vf4+zNjKZEAAACXSURBVBjTxdBFEgJBEETRxN3d3Rtr3P79j8WGaeYARPBX9Ta5KEmSMp1+Qd/yD6D59RrgHnE+A5B1ngOcQ87pAzwrvsForZF0d3trrbXW7icJSeENrlNKauFrKi39vko7LpePjiDtMObj8T9smHnucZNyw4yB4xaI90qSJANmDHgf+LVXYEbw8jyAbhkWnoP1akDFRkyS3hKPQR3ayj/hAAAAAElFTkSuQmCC",
            },
            {
              name: "女",
              // icon: `image://${woman}`,
              icon:
                "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAiCAMAAABhn6n1AAABGlBMVEUAAAD/AAD/VVX/VVX/SUn/YGD/Zmb/YmL/VVX/Wlr/Xl7/WVn/VVX/Xl7/WFj/V1f/W1v5WVn6XFz6Wlr6W1v6WFj7WVn7WVn7WVn7WVn7W1v7WVn8Wlr8Wlr8W1v8Wlr8W1v8W1v8W1v9W1v9WVn9Wlr9Wlr9W1v9W1v9WVn9Wlr9WVn9Wlr7Wlr7W1v7Wlr7W1v7WVn7Wlr8W1v8Wlr8W1v8WVn8Wlr8WVn8W1v8Wlr8Wlr8Wlr8Wlr8Wlr8W1v8Wlr8Wlr8WVn8Wlr8W1v8Wlr9Wlr9Wlr9Wlr9Wlr7W1v7Wlr8Wlr8Wlr8Wlr8W1v8Wlr8Wlr8Wlr8Wlr8Wlr8Wlr8Wlr8Wlr8Wlr8Wlr8Wlr8Wlr8Wlr8WlrVqYT9AAAAXXRSTlMAAQMGBwgKDQ8RExQVGyAjKi4yMzU3OTxCRUZIT1VaXl9iZWttbm9wc3V6e32AhIWKjJGVlpidn6Cjpaiqr7C0u72/w8XHzc/S1Nba2+Hl5+jp6+3w8/b3+Pn6/P2iRbbvAAAA7UlEQVQoz8XQV1ICARBF0auYs44BAybEnMUcQDErCGJA5e5/G37AyOzA9/dOVVd3NQDQGp+MEUnvsz50R2BfdTsCl6oXEVhXTUUgdlj52mtu9LbxxPRMIt4S9nhJVQujtd5Vtp6XdgCW/cs8AFdev6oW780AdHy7VFWtrPjRAiT8WawNJHUCOPDmpAbpR3ehqeBGfU1+xycY0oVwSVL7WbO0GcLquymOPboNIXvuAf2bw9UQKsFWHzDbuHQKgNMGpAGayw3IA4wZyQDQEwSB5u58D4Kgs/4izeR8i/z0n+DTs6zFCCSzgyNXcwD8AmVGYKFUgvUsAAAAAElFTkSuQmCC",
            },
          ],
        },
        grid: [
          // 左
          {
            top: "22%",
            bottom: "2%",
            left: "8%",
            width: "36%",
            height: "70%",
            containLabel: true,
          },
          // 中
          {
            top: "12%",
            bottom: "2%",
            left: "58%",
            // left: "center",
            width: "50%",
            height: "84%",
          },
          // 右
          {
            top: "22%",
            bottom: "2%",
            right: "5%",
            width: "36%",
            height: "70%",
            containLabel: true,
          },
        ],
        xAxis: [
          {
            type: "value",
            inverse: true,
            show: true,
            axisLabel: {
              color: "#7e8daa",
              fontSize: "20",
              fontWeight: "bold",
              textStyle: {
                fontFamily: "BoldCondensed",
              },
            },
            splitLine: {
              // 网格线
              show: true,
              lineStyle: {
                color: ["rgba(22, 39, 60, 1)"],
                width: 1,
                type: "dotted",
              },
            },
            axisTick: {
              //y轴刻度线
              show: false,
            },
            axisLine: {
              //轴线
              // show: false,
              lineStyle: {
                color: "rgba(25, 35, 57,0.2)",
              },
            },
          },
          {
            gridIndex: 1,
            show: true,
            axisLabel: {
              color: "#7e8daa",
              fontSize: "26",
              fontWeight: "bold",
              textStyle: {
                fontFamily: "BoldCondensed",
              },
            },
            splitLine: {
              // 网格线
              show: false,
              lineStyle: {
                color: ["rgba(22, 39, 60, 1)"],
                width: 1,
                type: "dotted",
              },
            },
            axisTick: {
              //y轴刻度线
              show: false,
            },
            axisLine: {
              //轴线
              show: false,
            },
          },
          {
            gridIndex: 2,
            type: "value",
            show: true,
            axisLabel: {
              color: "#7e8daa",
              fontSize: "20",
              fontWeight: "bold",
              textStyle: {
                fontFamily: "BoldCondensed",
              },
            },
            splitLine: {
              // 网格线
              show: true,
              lineStyle: {
                color: ["rgba(22, 39, 60, 1)"],
                width: 1,
                type: "dotted",
              },
            },
            axisTick: {
              //y轴刻度线
              show: false,
            },
            axisLine: {
              //轴线
              // show: false,
              lineStyle: {
                color: "rgba(25, 35, 57,0.2)",
              },
            },
          },
        ],
        yAxis: [
          {
            axisLabel: {
              show: false,
            },
            align: "center",
            type: "category",
            axisTick: {
              //y轴刻度线
              show: false,
            },
            data: ["16-20", "21-30", "31-40", "41-50", "51-60"],
            axisLine: {
              //轴线
              // show: false,
              lineStyle: {
                color: "rgba(25, 35, 57,0.2)",
              },
            },
          },
          {
            axisLabel: {
              color: "#7e8daa",
              fontSize: "20",
              fontWeight: "bold",
              textStyle: {
                fontFamily: "BoldCondensed",
              },
            },
            gridIndex: 1,
            position: "center",
            axisLine: {
              show: false,
            },
            type: "category",
            inverse: false,
            axisTick: {
              //y轴刻度线
              show: false,
            },
            data: [
              "  (人)    ",
              "16-20  ",
              "21-30  ",
              "31-40  ",
              "41-50  ",
              "51-60  ",
              "  (岁)    ",
            ], //使用空格使文字居中
          },
          {
            gridIndex: 2,
            position: "left",
            axisLabel: {
              show: false,
            },
            type: "category",
            inverse: false,
            axisTick: {
              //y轴刻度线
              show: false,
            },
            axisLine: {
              //轴线
              // show: false,
              lineStyle: {
                color: "rgba(25, 35, 57,0.2)",
              },
            },
            data: ["16-20", "21-30", "31-40", "41-50", "51-60"],
          },
        ],
        series: [
          {
            type: "bar",
            barWidth: 15,
            name: "男",
            itemStyle: {
              color: "#4f9efd",
            },
            data: manData,
          },
          {
            type: "bar",
            barWidth: 15,
            xAxisIndex: 2,
            yAxisIndex: 2,
            name: "女",
            itemStyle: {
              color: "#fc5a5a",
            },
            data: womanData,
          },
        ],
      };
      let myChart = this.$echarts.init(
        document.getElementById("bar")
      );
      myChart.setOption(option);
      window.addEventListener("resize", function () {
        myChart.resize();
      });
    },
}

3、在mounted中调用

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

以上

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
你可以使用 ECharts 来创建双横向柱状。以下是一个使用 ECharts 的示例代码来绘制双横向柱状的方法: ```javascript // 引入 ECharts import echarts from 'echarts'; // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('chart')); // 自定义数据 var data = [ { name: '类别1', value1: 100, value2: 200 }, { name: '类别2', value1: 150, value2: 120 }, { name: '类别3', value1: 70, value2: 90 }, { name: '类别4', value1: 200, value2: 180 }, ]; // 提取数据中的 value1 和 value2 列 var value1Data = data.map(item => item.value1); var value2Data = data.map(item => item.value2); // 可以根据需要自定义配置项 var option = { tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' // 阴影指示器 } }, legend: { data: ['值1', '值2'] }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: [ { type: 'value' } ], yAxis: [ { type: 'category', data: data.map(item => item.name) } ], series: [ { name: '值1', type: 'bar', data: value1Data, label: { show: true, position: 'inside' } }, { name: '值2', type: 'bar', data: value2Data, label: { show: true, position: 'inside' } } ] }; // 使用刚指定的配置项和数据显示表 myChart.setOption(option); ``` 上述代码中,我们首先引入了 ECharts,并且基于一个指定的 DOM 元素初始化了一个 ECharts 实例(`myChart`)。然后,我们定义了需要展示的数据(`data`)和两个柱状系列的数值数据(`value1Data` 和 `value2Data`)。接下来,我们可以根据需要自定义配置项(`option`),其中包括表的样式、轴配置、系列配置等。最后,使用 `setOption` 方法将配置项应用到 ECharts 实例上,从而显示出双横向柱状。 请确保在使用该代码之前已经正确引入了 ECharts 库,并将一个具有指定 id 的 DOM 元素作为容器。你可以根据实际需求对代码进行调整和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值