0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python制作可视化大屏全流程详解

数据分析与开发 来源:快学Python 作者:朱小五 2021-11-01 09:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天详细讲一下Pyecharts制作可视化大屏。注意,本文由于篇幅问题不会放置全部代码,会在文末提供全部代码的下载。

ECharts是由百度开源的基于JS的商业级数据图表库,有很多现成的图表类型和实例,而Pyecharts则是为了方便我们使用Python实现ECharts的绘图。使用Pyecharts制作可视化大屏,可以分为两步:

1、使用分别Pyecharts分别制作各类图形;

2、使用Pyecharts中的组合图表功能,将所有图片拼接在一张html文件中进行展示。

小五认为影响大屏美观最重要的两个因素就是:配色布局!在本文中,会特意强调这两点。

Pyecharts可视化

本文缩减了图表,只选用2020东京奥运会各国金牌分布图、2020东京奥运会奖牌榜详情、2020东京奥运会中国各项目获奖详情。

这类图表都很简单,参照官方文档直接复制示例就可以学习。图表配色都使用的Pyecharts默认颜色,大家实际使用时尽量形成自己的风格。

Map世界地图

Pyecharts绘制世界地图时,名称必须是英文。所以我们在前文中引入了国家名称中英文对照表,左连接形成了df4

单独提取英文名称和奖牌总数两列数据,用来可视化。

data_list=[[i,j]fori,jinzip(df4['英文名称'],df4['奖牌总数'])]
data_list[:5]
75f4d06c-3a58-11ec-82a9-dac502259ad0.png

数据准备好了,开始利用pyecharts绘制世界地图。

frompyechartsimportoptionsasopts
frompyecharts.chartsimportMap

c=(
Map()
.add("",data_list,"world",
is_map_symbol_show=False,
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="2020东京奥运会各国金牌分布图"),
visualmap_opts=opts.VisualMapOpts(max_=100)
)
)

c.render_notebook()

非常简单
同理,依次绘制其他两类图形。

柱状图、饼图

柱状图(Bar)

frompyechartsimportoptionsasopts
frompyecharts.chartsimportBar

c=(
Bar()
.add_xaxis(df4['名称'].head(25).tolist())
.add_yaxis("金牌",df4['金牌'].head(25).tolist(),stack="stack1")
.add_yaxis("银牌",df4['银牌'].head(25).tolist(),stack="stack1")
.add_yaxis("铜牌",df4['铜牌'].head(25).tolist(),stack="stack1")
.set_series_opts(label_opts=opts.LabelOpts(is_show=True,position="inside",font_size=12,color='#FFFFFF'))
.set_global_opts(title_opts=opts.TitleOpts(title="2020东京奥运会奖牌榜详情"),
xaxis_opts=opts.AxisOpts(type_='category',
axislabel_opts=opts.LabelOpts(
rotate=45),
)))
c.render_notebook()

饼图(Pie)

frompyechartsimportoptionsasopts
frompyecharts.chartsimportPie

c=(
Pie()
.add("",[['跳水',12],['射击',11],['举重',8],['竞技体操',8],['乒乓球',7],['游泳',6],['羽毛球',6],['田径',5],['静水皮划艇',3],['蹦床体操',3],['自由式摔跤',3],['赛艇',3],['空手道',2],['拳击',2],['帆船',2],['花样游泳',2],['跆拳道',1],['场地自行车赛',1],['古典式摔跤',1],['击剑',1],['三人篮球',1]],
center=["50%","60%"],)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
)
c.render_notebook()

这样需要用到的三张图表就绘制好了。
Pyecharts组合图表

Pyecharts进行可视化大屏第二步就是组合图表,大致可分为四类:

  • Grid:并行多图
  • Page:顺序多图
  • Tab:选项卡多图
  • Timeline:时间线轮播多图

官方文档:https://pyecharts.org/#/zh-cn/composite_charts

这里用Page(顺序多图)居多,在组合图表之前,还要先把前面的图表绘制代码改为函数。

defmap_world()->Map:
c=(
Map(init_opts=opts.InitOpts(chart_id=2,bg_color='#ADD8E6'))
.add("",data_list,"world",
is_map_symbol_show=False,
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="2020东京奥运会各国金牌分布图"),
visualmap_opts=opts.VisualMapOpts(max_=100)
)
)
returnc

顺便还在其中增加了背景颜色bg_color、图表IDchart_id,后者用于多图表时定位区分。背景颜色的话,我选择了淡蓝色#ADD8E6。后续图片的布局是根据图表ID的对应关系进行布局,所以每张图都要分别设置其id。
接着使用page = Page(layout= Page.DraggablePageLayout)模式对图片进行展示,这一步是为了调整布局。

page=Page(layout=Page.DraggablePageLayout,page_title="2020东京奥运会奖牌榜")

#在页面中添加图表
page.add(
title(),
map_world(),
bar_medals(),
pie_china(),)

page.render('test.html')

调用绘制函数后生成一个 test.html 文件。

打开后可以其中的图片进行拖拽,来实现自定义布局。

对图片布局完毕后,要记得点击左上角“save config”对布局文件进行保存。

点击后,本地会生成一个chart_config.json的文件,这其中包含了每个图表ID对应的布局位置。

最后,调用保存好的布局文件,重新生成html。

运行下面这行代码。

page.save_resize_html('test.html',cfg_file='chart_config.json',dest='奥运.html')

其中test.html 为生成的所有图表的文件、chart_config.json 为下载的布局文件、奥运.html 为布局好的的仪表盘文件、打开仪表奥运.html:

这样就实现了一次数据可视化——大屏展示。

但还有还有很多不足之处,比如若图表配色没有特殊去做调整。

整张大屏只是一个静态的展示,而非具有商业场景的数据仪表盘。

真正的数据大屏往往更喜欢用BI软件生成,能够实现图、表、切片器之间交叉筛选,希望以后有机会能用Python使用制作出来。

编辑:jq
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7314

    浏览量

    93982
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73148
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89581

原文标题:Python 制作可视化大屏全流程!

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数字孪生赋能智慧空港!湃睿科技助力华南大型枢纽机场行李流程可视化管控

    与监视控制系统)正式投入运行。该系统以数字孪生技术为核心,构建行李处理流程可视化管理体系,实现从行李值机到装机核对的全程智能监控与精准管控,不仅为华南大型枢纽机场智慧运营注入新动能
    的头像 发表于 11-11 14:56 454次阅读
    数字孪生赋能智慧空港!湃睿科技助力华南大型枢纽机场行李<b class='flag-5'>全</b><b class='flag-5'>流程</b><b class='flag-5'>可视化</b>管控

    智慧用电安全解决方案:打造流程可视化管控

    预警、可视管控”的闭环管理体系,其核心在于实现对电气安全风险的流程可视化、主动性管控。 一、 全域感知与数据采集:可视化管控的数据基石
    的头像 发表于 09-04 16:17 557次阅读
    智慧用电安全解决方案:打造<b class='flag-5'>全</b><b class='flag-5'>流程</b><b class='flag-5'>可视化</b>管控

    如何使用协议分析仪进行数据分析与可视化

    使用协议分析仪进行数据分析与可视化,需结合数据捕获、协议解码、统计分析及可视化工具,将原始数据转化为可解读的图表和报告。以下是详细步骤及关键方法,涵盖从数据采集到可视化
    发表于 07-16 14:16

    工业设备可视化管理系统是什么

    工业设备可视化管理系统是一种基于物联网(IoT)、大数据、云计算、数字孪生等技术,对工业设备的运行状态、性能参数、维护信息等进行实时监测、数据整合与可视化呈现的智能管理平台。它通过将复杂的设备数据
    的头像 发表于 05-27 14:56 734次阅读
    工业设备<b class='flag-5'>可视化</b>管理系统是什么

    工业设备数据集中监控可视化管理平台是什么

    工业设备数据集中监控可视化管理平台是一种用于整合、监控和可视化工业设备数据的综合性系统,旨在帮助企业实现设备数据的集中管理、实时监控和可视化展示,从而提升生产效率、优化设备运行状态并支持决策制定
    的头像 发表于 05-06 11:10 836次阅读

    VirtualLab Fusion应用:3D系统可视化

    描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化,因此可以用于检查元件的位置,以及快速了解系统内部的光传播情况
    发表于 04-30 08:47

    可视化组态物联网平台是什么

    可视化组态物联网平台是物联网技术与组态技术相结合的产物,是通过提供丰富的图形组件和可视化元素,让用户能够以直观、便捷的方式对物联网数据进行监控、分析和管理的平台。以下是其具体介绍: 定义 组态
    的头像 发表于 04-21 10:40 697次阅读

    可视化数据大:连线构建视觉新秩序 #数据可视化 #可视化

    可视化
    阿梨是苹果
    发布于 :2025年03月18日 16:12:04

    VirtualLab Fusion中的可视化设置

    摘要 VirtualLab Fusion中的全局选项对话框可以轻松定制软件的外观和感觉。还可以保存和加载全局选项文件,以便可以轻松地将偏好设置从一个设备转移到另一个设备。本文档说明了与可视化和结果
    发表于 02-25 08:51

    VirtualLab Fusion应用:光波导k域布局可视化(“神奇的圆环”)

    k域可视化内反射 k域可视化:FOV“盒子” k域可视化:k域中的RGB和FOV k域可视化:FOV“盒子”的运输 k域
    发表于 02-21 08:53

    七款经久不衰的数据可视化工具!

    钻、上卷、切片、联动等交互式分析方式,帮助用户深入探索数据背后的规律。此外,FineBI 支持丰富的图表类型和自定义样式,用户可以根据需求自由组合,制作出精美的仪表盘和报表,增强了数据的可视化效果,提升
    发表于 01-19 15:24

    什么是大数据可视化?特点有哪些?

    数据可视化是指通过大屏幕展示大量数据和信息,以直观、可视化的方式帮助用户理解和分析数据。这种展示方式通常用于展示复杂的数据集、实时监控系统、企业管理仪表盘等。以下是关于 大数据
    的头像 发表于 12-16 16:59 1001次阅读

    可视化在水务领域都有哪些应用场景?带你一次看透!

    随着科技的发展,大数据和可视化技术逐渐成为水务领域的有力助手。博达智联可视化设计平台以其高度自定义、功能强大、多种图表的特点,为水务行业提供了全新的解决方案。本文将详细探讨该平台在水务领域的具体
    的头像 发表于 12-13 17:09 1145次阅读
    <b class='flag-5'>可视化</b>大<b class='flag-5'>屏</b>在水务领域都有哪些应用场景?带你一次看透!

    如何找到适合的大数据可视化系统

    选择合适的大数据可视化系统是企业或组织在数字转型过程中至关重要的一步。一个优秀的大数据可视化系统能够实时呈现关键业务数据,提升决策效率
    的头像 发表于 12-13 15:47 803次阅读