引言

数据可视化是现代Web应用的重要组成部分,它能将复杂的数据以直观的图形方式呈现,帮助用户快速理解数据背后的信息。本文将介绍如何使用ECharts库实现智慧社区住户数据的可视化展示,包括柱状图和饼图两种常见图表类型的实现与优化。

技术栈

  • Vue.js:前端框架
  • ECharts:强大的数据可视化库
  • Axios:HTTP请求库(用于获取数据)

项目结构分析

1. 页面布局

<template><div class="app-container"><div><div id="myChart" style="width: 50%;height:600px;margin-top: 10px; float: left"></div><div id="myChart2" style="width: 50%;height:600px;margin-top: 10px; float: right"></div></div></div>
</template>

这种布局实现了:

  • 左右并排的两个图表容器
  • 各占50%宽度,高度固定为600px
  • 顶部10px的外边距
  • 使用浮动实现左右布局

2. 数据获取

import { chart } from '@/api/sys/inOut'methods: {drawLine(){chart().then(res => {// 图表初始化代码})}
}

通过封装的API接口chart()获取数据,返回的Promise对象在resolve后处理数据并渲染图表。

柱状图实现详解

1. 基础配置

let myChart = this.$echarts.init(document.getElementById('myChart'))
myChart.setOption({color: ['#3398DB'],title: {text: '智慧社区住户量统计',subtext: '对比图',left: 'center'},// 其他配置...
})

关键点:

  • 使用#3398DB作为柱状图的主色调
  • 设置主标题和副标题
  • 标题居中显示

2. 交互与提示

tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'},formatter: '{b}<br/>住户量: {c}'
}

优化点:

  • 触发类型为坐标轴触发
  • 阴影类型的坐标轴指示器
  • 自定义提示框内容格式

3. 坐标轴配置

xAxis: {type: 'category',data: res.data.names,axisLabel: {rotate: 30,interval: 0}
},
yAxis: {type: 'value',name: '住户量',nameLocation: 'middle',nameGap: 30
}

特色处理:

  • X轴标签旋转30度防止重叠
  • 强制显示所有标签(interval: 0)
  • Y轴名称居中显示,与轴线的间距为30px

4. 数据系列与样式

series: [{name: '住户量',type: 'bar',barWidth: '60%',data: res.data.nums,itemStyle: {borderRadius: [4, 4, 0, 0],shadowColor: 'rgba(0, 0, 0, 0.3)',shadowBlur: 5,shadowOffsetY: 3},label: {show: true,position: 'top',formatter: '{c}'}
}]

样式亮点:

  • 柱状图宽度为60%
  • 顶部圆角效果
  • 阴影效果增强立体感
  • 顶部显示数值标签

饼图实现详解

1. 基础配置

let myChart2 = this.$echarts.init(document.getElementById('myChart2'))
myChart2.setOption({title: {text: '智慧社区住户量统计',subtext: '占比图',left: 'center'},// 其他配置...
})

与柱状图类似,但展示的是占比关系而非绝对数值。

2. 图例与交互

legend: {orient: 'vertical',left: 'left',data: res.data.list.map(item => item.name)
},
tooltip: {trigger: 'item',formatter: '{a}<br/>{b}: {c} ({d}%)'
}

特点:

  • 垂直排列的图例
  • 左侧显示
  • 提示框显示百分比和绝对值

3. 环形图实现

series: [{name: '住户量',type: 'pie',radius: ['40%', '70%'],center: ['50%', '55%'],data: res.data.list.sort(function (a, b) { return a.value - b.value; }),// 其他样式配置...}
]

关键参数:

  • radius: ['40%', '70%']实现环形图效果
  • 数据按值排序,使图表更美观
  • 中心点稍微下移(55%),为标题留出空间

4. 样式优化

itemStyle: {borderRadius: 5,borderColor: '#fff',borderWidth: 2,shadowBlur: 5,shadowColor: 'rgba(0, 0, 0, 0.2)'
},
label: {show: true,formatter: '{b}: {d}%'
},
emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}
}

视觉增强:

  • 扇形区块圆角
  • 白色边框分隔各区块
  • 悬浮时的高亮效果
  • 显示百分比标签

性能与体验优化

  1. ​动画效果​​:两个图表都设置了animationDuration: 1500,1.5秒的动画过渡使数据展示更生动

  2. ​响应式设计​​:图表容器使用百分比宽度,可以适应不同屏幕尺寸

  3. ​数据排序​​:饼图数据按值排序,提升可读性

  4. ​标签处理​​:柱状图X轴标签旋转防止重叠,确保所有标签可见

后端数据结构

理想的后端返回数据结构应包含:

{"data": {"names": ["社区A", "社区B", "社区C"],"nums": [100, 200, 150],"list": [{"name": "社区A", "value": 100},{"name": "社区B", "value": 200},{"name": "社区C", "value": 150}]}
}

这种结构同时满足柱状图(分类+数值)和饼图(名称+值)的需求。

扩展思考

这个基础实现还可以进一步扩展:

  1. ​响应式调整​​:监听窗口大小变化,调用ECharts的resize()方法

  2. ​主题切换​​:使用ECharts的主题功能实现白天/黑夜模式切换

  3. ​数据刷新​​:定时获取新数据并更新图表

  4. ​图表联动​​:实现两个图表间的交互联动

  5. ​导出功能​​:添加图表导出为图片的功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/95011.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/95011.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/95011.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 综述:从基础到一般应用

摘要&#xff1a; Qt&#xff0c;作为久经考验的跨平台C开发框架&#xff0c;以其强大的功能、丰富的类库和灵活的机制&#xff0c;在桌面应用、嵌入式系统、网络编程等领域占据重要地位。本文将深入解析Qt的核心技术体系&#xff0c;涵盖基础架构、核心机制、UI开发、外观定制…

基于PyTorch一文讲清楚损失函数与激活函数并配上详细的图文讲解

PyTorch损失函数与激活函数 目录 激活函数详解损失函数详解实战案例性能优化技巧 激活函数详解 1. 什么是激活函数&#xff1f; 激活函数是神经网络中的关键组件&#xff0c;它决定了神经元是否应该被激活。没有激活函数&#xff0c;神经网络就只是线性变换的堆叠&#xf…

苍穹外卖-Day1 | 环境搭建、nginx、git、令牌、登录加密、接口文档、Swagger

目录 nginx&#xff1a; nginx反向代理和负载均衡概念 nginx反向代理和负载均衡如何配置&#xff1f; 后端环境&#xff1a;maven管理 sky-common sky-pojo sky-server&#xff1a; 后端环境搭建--Git进行版本控制 后端数据库--Mysql 前后端联调 前后端运行&#xf…

论文阅读-ZeroDCE和ZeroDCE++

文章目录1 概述2 模块2.1 总体说明2.2 LE曲线&#xff08;Light Enhance Curve&#xff09;2.3 DCE-Net2.4 无监督损失2.4.1 空间一致性损失2.4.2 曝光控制损失2.4.3 颜色恒定损失2.4.4 照明平滑度损失2.5 ZeroDCE3 效果3.1 不同损失函数组合的效果3.2 参数设置影响3.3 训练数据…

Web自动化技术选择

我想学习自动化技术&#xff0c;我的诉求是&#xff1a; 1.我想做自动报社保功能&#xff0c;先从我们自己的系统里面下载Excel&#xff0c;然后自动登录到社保局的系统&#xff0c;自动填写Excel&#xff0c;自动上传Excel。 2.可以自动的到社保局的系统里面查下数据&#xff…

【celeba】-数据集的介绍

CelebA 数据集在 MTCNN 中的使用 1 数据集结构 CelebA_副本/ ├── Anno/ │ ├── list_bbox_celeba.txt # 边界框 │ ├── list_landmarks_celeba.txt # 5 关键点 │ ├── list_attr_celeba.txt # 40 属性 │ └── identity_CelebA.txt …

解读 GPT-5:从“博士级 AI 专家”能力到 OpenAI API Key 获取与实践(提示工程→性能调优全流程)

GPT-5深度解读&#xff1a;一位“博士级专家”的诞生与思考第一部分&#xff1a;新范式——化繁为简的统一智能体 OpenAI的GPT-5&#xff0c;远不止是一次常规的模型升级。它的发布&#xff0c;标志着一种颠覆性的架构思想变革&#xff1a;从过去那个让用户在各种“Turbo”、“…

8.3.1 注册服务中心Etcd

etcd是什么 etcd 是一个分布式键值对存储&#xff0c;设计用来可靠而快速的保存关键数据并提供访问。通过分布式锁&#xff0c; leader选举保障可靠的分布式协同。 etcd 特点 完全复制&#xff0c;集群中的每个节点均拥有全量数据 强一致性&#xff0c;etcd通过raft共识算法…

异或循环冗余

异或代码CRC8-ITU例程比较计算CRC16异或改进测试重点代码 def fun_crc(datas):crc 0xFF poly 0x07 for i in range(len(datas)):for j in range(7, -1, -1):if (crc & 0x80) 0x80: crc (crc << 1) ^ polyelse:crc (crc << 1)if (datas[i] & 2**j):#值…

一款轻量、免费、无广告,强大的演示工具,支持屏幕放大、涂鸦、截图、录屏

软件介绍 ZoomIt&#xff0c;是一款轻量、免费、无广告&#xff0c;强大的演示工具&#xff0c;支持屏幕放大、涂鸦、截图、录屏等。在系统托盘中不显示的运行&#xff0c;可自定义快捷键&#xff0c;使用方面。 软件基础功能 屏幕放大&#xff1a;按下快捷键“Ctrl1”可进入…

从街亭失守看管理

最近看了《三国演义》&#xff0c;重温了街亭失守事件&#xff0c;从马谡最耀眼的登场来看就是&#xff0c;火烧藤甲兵计策和诸葛亮不谋而合&#xff0c;说明马谡确实是有真材实料的&#xff0c;但在守街亭的任务上&#xff0c;诸葛亮也踌躇过又对先帝的遗言“马谡不可重用”记…

全面解析 URL 重定向原理:从协议、实现到安全实践

一、什么是 URL 重定向&#xff1f; URL 重定向&#xff08;URL Redirection&#xff09;是 Web 技术中一种将用户请求的 URL 自动转向另一个目标 URL 的机制。用户可能完全不会察觉跳转发生&#xff0c;因为浏览器在幕后完成了一切。 重定向通常用于以下场景&#xff1a; 网…

多任务 Transformer 模型的高效任务间注意力

抽象 在计算机视觉和更广泛的深度学习领域&#xff0c;Transformer 架构已被公认为许多应用程序的最先进技术。然而&#xff0c;对于多任务学习&#xff0c;与单任务模型相比&#xff0c;可能需要更多的查询&#xff0c;考虑到实际的硬件限制&#xff0c;它的多头注意力通常接近…

QT的常用控件说明

文章目录基本的代码的模板Label控件font字体相关Button 控件CheckBox 控件Radio控件ComboBox控件LineEdit 控件基本的代码的模板 class MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs) # 调用父类初始化方法# 声明窗口实例# 代…

5Python异常处理与模块导入全指南

目录 什么是异常&#xff1f; 异常的捕获方法&#xff1a; 为什么要捕获异常&#xff1f; 捕获异常的语法&#xff1a; 异常的else和finally语法&#xff1a; 什么是异常&#xff1f; 异常就是程序运行过程中出现了错误&#xff0c;也就是我们常说的出bug了-。- 异常的捕…

区块链密码学简介

区块链密码学简介 一、对称密码算法 概述 对称密码算法的主要特点是使用相同的密钥进行加密和解密。这类算法根据其加密方式大致可以分为两类:流密码和分组密码。区块链技术主要采用分组密码。流密码以数据流的形式逐位或逐字节加密,而分组密码则将数据分成固定大小的块进行…

GridKernalGateway

GridKernalGateway 是 Apache Ignite 架构中一个关键的安全与状态管理组件&#xff0c;它的作用是 “在公共 API 和内部内核&#xff08;kernal&#xff09;之间建立安全、可控的访问通道”。 我们可以把它理解为一个 “门卫 状态哨兵”&#xff0c;确保外部调用不会在 Ignite…

MySQL索引、B+树相关知识总结

MySQL索引、B树相关知识汇总一、有一个查询需求&#xff0c;MySQL中有两个表&#xff0c;一个表1000W数据&#xff0c;另一个表只有几千数据&#xff0c;要做一个关联查询&#xff0c;如何优化&#xff1f;1、为关联字段建立索引2、小表驱动大表二、b树和b树的区别1、更高的查询…

Java学习进阶 -- 泛型的继承和通配符及综合练习

首先&#xff0c;泛型不具备继承性&#xff0c;但是数据具备继承性1.核心概念解析泛型不具备继承性即使类型A是类型B的子类&#xff0c;Generic<A>也不是Generic<B>的子类这是Java泛型的类型安全设计&#xff0c;防止不安全的类型转换数据具备继承性泛型容器中的元…

如何实现在多跳UDP传输场景,保证单文件和多文件完整传输的成功率?

如何实现在多跳UDP传输场景&#xff0c;保证单文件和多文件完整传输的成功率&#xff1f; 一、前言 UDP&#xff08;User Datagram Protocol&#xff09;是一个轻量、无连接的传输协议&#xff0c;广泛用于低延迟、高吞吐的应用中&#xff0c;如视频流、实时游戏等。然而&…