vue+echarts封装气泡图的方法

作者:醒醒打工仔 时间:2024-05-09 15:09:45 

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

前端可视化封装气泡图

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>

来源:https://blog.csdn.net/weixin_45579925/article/details/119999805

标签:vue,echarts,气泡图
0
投稿

猜你喜欢

  • 让ASP组件来保护你的网站,自定义加密方法的使用

    2009-11-07 19:27:00
  • 详解Django中间件的5种自定义方法

    2022-07-24 03:51:43
  • Python使用progressbar模块实现的显示进度条功能

    2023-11-20 05:40:07
  • uni-app网络请求、数据缓存实例详解

    2023-08-09 03:49:12
  • Go语言正则表达式示例

    2023-04-13 19:41:34
  • Python编写屏幕截图程序方法

    2022-10-04 11:11:47
  • Python实现邮件自动下载的示例详解

    2023-06-15 04:44:35
  • python数字图像处理之高级形态学处理

    2021-08-18 15:55:42
  • Python实现基于SVM的分类器的方法

    2023-11-18 18:20:02
  • Python学习之元组的使用详解

    2021-05-13 10:49:23
  • python wav模块获取采样率 采样点声道量化位数(实例代码)

    2023-04-26 23:25:28
  • 为Python的Tornado框架配置使用Jinja2模板引擎的方法

    2022-07-19 03:49:07
  • Maven中央仓库正式成为Oracle官方JDBC驱动程序组件分发中心(推荐)

    2024-01-26 05:26:27
  • 使用PDB模式调试Python程序介绍

    2021-12-12 02:29:42
  • Python match语句的具体使用

    2023-07-24 03:10:08
  • 深入了解Golang interface{}的底层原理实现

    2024-05-05 09:31:13
  • vue.js父组件使用外部对象的方法示例

    2024-05-29 22:43:22
  • Python中关于Sequence切片的下标问题详解

    2021-05-30 22:49:47
  • MySQL 基础常用命令总结

    2024-01-22 16:35:40
  • python的scipy.stats模块中正态分布常用函数总结

    2021-06-26 16:03:04
  • asp之家 网络编程 m.aspxhome.com