我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue+echars封装气泡图的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue+echars封装气泡图的方法

本文实例为大家分享了vue+echars封装气泡图的具体代码,供大家参考,具体内容如下

前端可视化封装气泡图

1. html

<template>
  <div class="bubble-chart">
    <div ref="bubbleChart" class="bubble"></div>
  </div>
</template>

2. js

<script>
export default {
  name: "BubbleChart",
  props: {
    rowData: {
      default: () => {
        return [
          {
            name: "员工增长",
            value: -20,
          },
          {
            name: "员工增长",
            value: -38,
          },
          {
            name: "员工增长",
            value: 44,
          },
          {
            name: "员工增长",
            value: 42,
          },
          {
            name: "员工增长",
            value: 35,
          },
          {
            name: "员工增长",
            value: 30,
          },
          {
            name: "员工增长",
            value: -25,
          },
          {
            name: "员工增长",
            value: 20,
          },
          {
            name: "员工增长",
            value: 12,
          },
          {
            name: "员工增长",
            value: 15,
          },
          {
            name: "营收增长",
            value: 15,
          },
          {
            name: "营收增长",
            value: -15,
          },
          {
            name: "营收增长",
            value: 30,
          },
          {
            name: "营收增长",
            value: -21,
          },
          {
            name: "营收增长",
            value: -22,
          },
          {
            name: "营收增长",
            value: 23,
          },
          {
            name: "营收增长",
            value: 8,
          },
          {
            name: "营收增长",
            value: 56,
          },
          {
            name: "营收增长",
            value: 31,
          },
          {
            name: "营收增长",
            value: -3,
          },
        ];
      },
    },
    color: {
      default: () => {
        return "#50BCD8";
      },
    },
    legends: {
      type: Array,
      default: () => {
        return ["员工增长", "营收增长"];
      },
    },
  },
  data() {
    return {
      chartInstance: null,
      staffData: [],
      revenueData: [],
      dataList: [],
    };
  },
  mounted() {
    this.initChart();
  },
  methods: {
    // 初始化实例
    initChart() {
      //  挂在 DOM
      this.chartInstance = this.$echarts.init(this.$refs.bubbleChart);
      //  初始化配置项
      let option = {
        grid: {
          left: "0%",
          right: "2%",
          bottom: "3%",
          containLabel: true,
        },
        xAxis: {
          name: this.legends[1],
           nameTextStyle: {
            padding: [40, 65, 0, -65]    // 四个数字分别为上右下左与原位置距离
        },
          type: "value",
          scale: true,
          axisLabel: {
            formatter: "{value}",
          },
          splitLine: {
            show: false,
          },
          axisLine: {
            lineStyle: {
              color: "#BFEBFF",
            },
          },
        },
        yAxis: {
          name: this.legends[0],
          type: "value",
          scale: true,
          axisLabel: {
            formatter: "{value}",
          },
          splitLine: {
            show: false,
          },
          axisLine: {
            lineStyle: {
              color: "#BFEBFF",
            },
          },
        },
        series: [],
      };

      this.setSeries(option);
      this.setOption(option);
    },
    //  设置series
    setSeries(option) {
      this.rowData.forEach((e) => {
        if (e.name === this.legends[0]) {
          this.staffData.push(e);
        } else {
          this.revenueData.push(e);
        }
      });
      this.staffData.forEach((e, i) => {
        this.revenueData.forEach((item, index) => {
          if (i === index) {
            this.dataList.push([e.value, item.value]);
          }
        });
      });
      let _series = {
        data: this.dataList,
        type: "scatter",
        symbolSize: function(data) {
          return (Math.abs(data[1]) + Math.abs(data[0])) / 2;
        },
        label: {
          show: false,
        },
        itemStyle: {
          normal: {
            color: this.color,
          },
        },
      };
      option.series.push(_series);
    },
    //  设置图表
    setOption(option) {
      this.chartInstance.setOption(option);
    },
  },
};
</script>

3. css

<style lang="less" scoped>
.bubble-chart {
  width: 100%;
  height: 100%;

  .bubble {
    width: 100%;
    height: 100%;
  }
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue+echars封装气泡图的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

利用CSS实现图片气泡特效的技巧和方法

在网页设计中,给图片添加特效是提升用户体验的重要手段之一。其中,图片气泡特效可以为图片增添趣味性和互动性,使网页内容更加吸引人。本文将分享一些利用CSS实现图片气泡特效的技巧和方法,并附带具体的代码示例。使用伪类元素创建气泡效果通过使用CS
2023-10-21

vue封装axios请求的方法是什么

本文小编为大家详细介绍“vue封装axios请求的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue封装axios请求的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。其实vue封装axio
2023-07-04

android编程实现图片库的封装方法

本文实例讲述了android编程实现图片库的封装方法。分享给大家供大家参考,具体如下: 大家在做安卓应用的时候 经常要从网络中获取图片 都是通过URL去获取 可是如果本地有图片数据 从本地获取数据不更加快一些 自己在工作中遇到这个问题 所以
2022-06-06

Vue封装通过API调用的组件的方法详解

在日常业务开发中我们会经常封装一些业务组件,下面这篇文章主要给大家介绍了关于Vue封装通过API调用的组件的方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
2022-12-26

编程热搜

目录