用 pyecharts 制作数据可视化大屏之数据地图
林骥
共 2711字,需浏览 6分钟
· 2020-12-18
前段时间,我看到 20 个炫酷的数据可视化大屏,源代码都是基于 echarts 的,于是我产生了用 Python 来实现数据可视化大屏的想法。
参考上面这个模板,我计划用 pyecharts 实现一个类似的数据可视化大屏。
今天先绘制中间的数据地图,为了方便演示,我们采用一个超市数据集,数据来源于 Tableau 官方示例。
你可以点击左下方阅读原文的链接,用电脑下载到本地之后,把 Excel 数据文件保存到 data 文件夹中。
如果你还没有安装 pyecharts,那么请先打开命令行,运行以下代码:
# 安装或更新 v1 以上版本,目前是 1.9.0
pip3 install pyecharts -U
在 Jupyter Lab 中新建一个 Notebook,运行以下代码:
# 声明 Notebook 类型,必须在引入 pyecharts.charts 等模块前声明
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
# 导入相关库
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.globals import ThemeType
import pandas as pd
# 从 data 文件夹读取 Excel 中的数据
df = pd.read_excel('./data/超市数据.xlsx')
# 用数据透视表的方法汇总各省销售额
province_sale = df.pivot_table(values='销售额', index='省/自治区', aggfunc=sum)
# 把数据整理成绘图所需的列表格式,规范名称,销售额换算成万元,保留一位小数
list_province_sale = [list(z) for z in zip(province_sale.index.str.replace('自治区', ''), round(province_sale.销售额/10000, 1))]
# 求各省销售额的最大值
max_sale = round(province_sale.销售额.max()/10000,0)
# 标题,数字千分位格式显示
title = "{:,}".format(int(province_sale.销售额.sum()))
# 副标题
subtitle = '\t\t2016年到2019年总销售额'
# 绘制地图
c = (
# 主题样式和背景颜色
Map(init_opts=opts.InitOpts(theme=ThemeType.SHINE, chart_id=1, bg_color='#00589F'))
# 添加地图数据
.add("", list_province_sale, "china")
# 全局配置
.set_global_opts(
# 标题文字
title_opts=opts.TitleOpts(title=title,
# 副标题
subtitle=subtitle,
# 标题位置
pos_left='39%', pos_top=20,
# 标题颜色和大小
title_textstyle_opts=opts.TextStyleOpts(color="#FBC171", font_size=36),
# 副标题颜色和大小
subtitle_textstyle_opts=opts.TextStyleOpts(color="#CCCCCC", font_size=15)),
# 可视化组件参数
visualmap_opts=opts.VisualMapOpts(
# 最大值
max_=max_sale,
# 显示精确的分段值
is_piecewise=True,
# 图例位置
pos_left='30%', pos_bottom=10,
# 图例字体颜色
textstyle_opts=opts.TextStyleOpts(color="#FFFFFF")))
# 隐藏文字标签
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)
# 在 Jupyter Lab 中第一次渲染时需要调用
_ = c.load_javascript()
然后,运行以下代码:
# 需要与 load_javascript 在不同的单元格中运行
c.render_notebook()
就能得到如下数据地图:
对于颜色的深浅和气泡的大小,我们的感知能力其实是比较弱的,通常很难精准地判断差异。
从有效传递信息的角度来看,林骥认为上面这种分段式的数据地图,比普通的热力地图和气泡地图更加有效。
下一篇文章,我将用 pyecharts 绘制数据可视化大屏中的其他图表,敬请关注。
数据可视化|用热力地图进行数据分析
评论
CVPR 2024|大视觉模型的开山之作!无需任何语言数据即可打造大视觉模型
↑ 点击蓝字 关注极市平台作者丨科技猛兽编辑丨极市平台极市导读 本文提出一种序列建模 (sequential modeling) 的方法,不使用任何语言数据,训练大视觉模型。>>加入极市CV技术交流群,走在计算机视觉的最前沿本文目录1 序列建模打造大视觉模型(来自 U
极市平台
1
堪称最优秀的Docker可视化管理工具——Portainer你真的会用吗?
来源:blog.csdn.net/shark_chili3007/article/details/123366179👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目
小哈学Java
0
人工智能周刊#18:微软发布手机端大模型、Llama 3 中文模型列表、苹果开源新项目、
主打尊重隐私的搜索引擎 duckduckgo,也推出了 ai chat 服务,可以使用 chatgpt 或者 claude机器学习周刊:关注 Python、机器学习、深度学习、大模型等硬核技术本期目录:1、Qwen1.5-110B:Qwen1.5 系列的首个千亿参数开源模型2、苹果开源
机器学习算法与Python实战
0
5000w+ 的大表如何拆?亿级别大表拆分实战复盘
前言笔者是在两年前接手公司的财务系统的开发和维护工作。在系统移交的初期,笔者和团队就发现,系统内有一张5000W+的大表。跟踪代码发现,该表是用于存储资金流水的表格,关联着众多功能点,同时也有众多的下游系统在使用这张表的数据。进一步的观察发现,这张表还在以每月600W+的数据持续增长,也就是说,不超
码农编程进阶笔记
0
中国人民大学《大语言模型》书籍中文版开放下载!还配套代码工具库~
大语言模型综述文章《A Survey of Large Language Models》团队终于出书啦!而且是中文版——《大语言模型》!这本书整理呈现了大模型技术框架和路线图,是一本非常好的入门书籍。🧿🧿🧿
此外,官方不仅发布了电子版 PDF 下载链接,还提供了配套资源。点赞 👍图书下载 → [大
机器学习算法与Python实战
0
JavaScript 可视化:Promise执行彻底搞懂
深入探讨了 JavaScript 中 Promise 的内部机制,解释了它们如何使异步任务以非阻塞方式执行,并展示了 Promise 的创建、状态变化以及与事件循环的关系。正文从这开始~~JavaScript 中的 Promise 一开始可能会让人感到有些难以理解,但是如果我们能够理解其内部的工作原
高级前端进阶
0
Datawhale来“瓜大”(西工大🫡)啦!
Datawhale线下 主办方:Datawhale团队西北工业大学(Northwestern Polytechnical University)简称“西工大”,位于陕西省会西安市,直属中华人民共和国工业和信息化部,是中国唯一一所以同时发展航空、航天、航海(三航)工程教育和科学研
Datawhale
1
让扩散模型听话的小秘籍?CAN:通过操控权重来控制条件生成模型,图像生成效率大升级!
↑ 点击蓝字 关注极市平台作者丨科技猛兽编辑丨极市平台极市导读 本文提出的 CAN 模型 (Condition-Aware Neural Network) 是一种对图像生成模型添加控制的方法。CAN 可以通过动态操纵神经网络的权重来控制图像生成过程。作者在 ImageNet 图像
极市平台
0