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

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

3天内不再提示

Pyecharts制作可视化大屏详解

Linux爱好者 来源:快学Python 作者:朱小五 2021-10-26 09:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前两天发了一篇《用Python制作可视化大屏,特简单!》,留言区非常火爆,发现大家都对可视化部分非常感兴趣。

而恰好大屏可视化这一部分又没太细讲,今天就详细讲一下Pyecharts制作可视化大屏。

注意,本文由于篇幅问题不会放置全部代码,会在文末提供全部代码的下载。

承接上文《用Python制作可视化大屏,特简单!》,不再赘述数据爬取和数据预处理。

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

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

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

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

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

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

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

df4

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

data_list=[[i,j] for i,j in zip(df4[‘英文名称’],df4[‘奖牌总数’])]

data_list[:5]

803866ee-3583-11ec-82a8-dac502259ad0.png

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

from pyecharts import options as opts

from pyecharts.charts import Map

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)

from pyecharts import options as opts

from pyecharts.charts import Bar

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()

2020东京奥运会奖牌榜详情

饼图(Pie)

from pyecharts import options as opts

from pyecharts.charts import Pie

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()

2020东京奥运会中国各项目获奖详情

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

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

Grid:并行多图

Page:顺序多图

Tab:选项卡多图

Timeline:时间线轮播多图

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

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

def map_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)

return c

顺便还在其中增加了背景颜色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使用制作出来。

责任编辑:haq

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

    关注

    30

    文章

    4976

    浏览量

    74378
  • python
    +关注

    关注

    58

    文章

    4885

    浏览量

    90307

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

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    高质量可视化应该这样设计

    在数据驱动决策的当下,可视化已成为企业数据呈现、业务监控的核心载体,图扑软件基于自研 HT for Web 前端可视化引擎,打造无需依赖第三方插件、纯 Web 端部署的 2D3D 图形渲染内核
    的头像 发表于 04-23 14:22 78次阅读
    高质量<b class='flag-5'>可视化</b>大<b class='flag-5'>屏</b>应该这样设计

    3D系统可视化

    本身的深入描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化,因此可以用于检查元件的位置,以及快速了解系统内部的光
    发表于 03-30 09:25

    OBOO鸥柏丨98英寸触摸信息发布系统一体机交通轨道可视化终端数字

    OBOO鸥柏丨98英寸触摸信息发布系统交通轨道可视化终端数字在现代城市交通管理中,信息的实时发布和可视化展示变得越来越重要。[OBOO鸥柏]凭借其先进的98英寸触摸
    的头像 发表于 12-09 18:17 638次阅读
    OBOO鸥柏丨98英寸触摸<b class='flag-5'>屏</b>信息发布系统一体机交通轨道<b class='flag-5'>可视化</b>终端数字<b class='flag-5'>化</b>

    工业物联网可视化平台是什么?有什么功能?

    工业物联网可视化平台是基于物联网、大数据、人工智能等技术,将工业生产中的设备、系统、流程等数据以图形方式呈现,实现实时监控、智能分析与交互式管理的数字化工具。 其核心功能涵盖数据集成、可视化展示
    的头像 发表于 11-17 17:49 1459次阅读

    基于 HT 技术的园区元宇宙可视化管理平台

    在数字转型浪潮下,园区管理对智能可视化的需求日益迫切。本文基于 HT(Hightopo)技术栈,不依赖任何第三方插件,从技术开发视角,详细阐述园区元宇宙智慧综合治理可视化管理平台
    的头像 发表于 11-07 14:54 586次阅读
    基于 HT 技术的园区元宇宙<b class='flag-5'>可视化</b>管理平台

    工业可视化平台是什么

    工业可视化平台是一种基于信息技术和可视化技术,将工业生产过程中的数据、信息、流程等以直观、动态的图形方式呈现,并实现交互式管理与分析的数字化工具。它通过整合工业物联网(IIoT)、大数据、人工智能
    的头像 发表于 10-24 18:00 1228次阅读

    光伏电站可视化的实现

    实现光伏电站可视化,核心是在于通过直观的视觉界面,解决传统运维中低效巡检、数据孤岛、被动响应等痛点,从而提升运营效率并提供决策支持。这是一种有效的技术手段,通过数字孪生、三维建模、数据融合等技术
    的头像 发表于 10-21 17:29 1337次阅读
    光伏电站<b class='flag-5'>可视化</b>的实现

    数字孪生可视化系统构建行业数字智能管理生态!

    数字孪生可视化系统具备丰富的模型组件,包括二维平面组件及3D模型组件,可根据用户需求进行定制。数字孪生可视化系统在行业数字升级、数字管理中有着重要的意义,充分利用大数据技术和信息技
    的头像 发表于 09-19 11:45 865次阅读
    数字孪生<b class='flag-5'>可视化</b>系统构建行业数字<b class='flag-5'>化</b>智能管理生态!

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

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

    如何实现光伏数字孪生可视化

    光伏数字孪生可视化是通过数字手段构建光伏电站的虚拟镜像,实现物理实体与数字模型的实时映射与交互,目的是促进光伏电站运维管理的智能、高效。通过实时监控与智能预警,实现故障快速定位以
    的头像 发表于 05-29 15:27 870次阅读
    如何实现光伏数字孪生<b class='flag-5'>可视化</b>?

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

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

    光伏电站可视化这种技术的难点有哪些?

    通过数字孪生、三维建模、数据融合等技术,将光伏电站的物理环境、设备状态、发电数据等信息以图形、动态的形式呈现,这便是光伏电站可视化,其核心在于构建电站的虚拟镜像,实现运行状态的实时监控、故障预测
    的头像 发表于 05-15 10:56 734次阅读

    结构可视化:利用数据编辑器剖析数据内在架构​

    结构可视化聚焦于展示数据的内部结构和各部分之间的关系,使企业能够深入理解数据的组织方式和层次体系,从而更好地进行数据管理和分析。通过结构可视化,企业可以清晰地看到数据的层次结构、关联关系以及数据流
    的头像 发表于 05-07 18:42 918次阅读

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

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

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

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