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]

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

from pyecharts import options as optsfrom 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 optsfrom 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:时间线轮播多图

官方文档:

这里用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使用制作出来。

代码下载

(0)

相关推荐

  • Python 招聘岗位数据可视化

    来源:Python 技术「ID: pythonall」 项目背景 最近朋友圈又有小伙伴被降薪.被裁员了.往年金三银四是找工作的好时机,但在今年疫情之下互联网似乎更冷了.为了更好的找到好工作,就要了解企 ...

  • pyecharts丨页面布局工具

    让多张图表展示在同一页面 一. 令图表垂直布局--Page 二. 令图表水平布局--Grid P.S. 如何让两个饼图平行排列? P.P.S. 如何让两张纯图片平行排列? P.P.P.S 如何让两个词 ...

  • 如何利用pyecharts绘制酷炫的桑基图?

    什么是桑基图 桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图.它是一种特定类型的流程图,核心在于展示数据的流转,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源.材 ...

  • 盘点 Django 展示可视化图表的多种方式(建议收藏)

    盘点 Django 展示可视化图表的多种方式(建议收藏)

  • Python分析6625条视频,告诉你“打工人”凭什么能刷爆全网

    CDA数据分析师 出品 作者:Mika 数据:真达 后期:Mika [导读] 今天教大家用Python分析B站的"打工人"视频.公众号后台,回复关键字"打工人" ...

  • pyecharts生成各种图表

    pyecharts的使用 pyecharts 是一个用于生成 Echarts 图表的类库. echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生成 ...

  • Python Flask 数据可视化

    数据可视化是数据处理中的重要部分,前面我们了解了 Flask 的开发和部署,如何用 Flask 做数据可视化呢?今天我们来了解一下. Python 语言极富表达力,并且拥有众多的数据分析库和框架,是数 ...

  • (2条消息) 数据可视化技术:python数据可视化工具库汇总(共21个)

    Python数据可视化库 在数据分析中最好展示数据的方式就是形象地绘制对应的图像,让人能够更好地理解数据.什么样的数据.什么样的场景用什么样的图表都是有一定的规定的.(这个以后写一篇博客来记录一下.当 ...

  • 如何利用pyecharts绘制炫酷的关系网络图?

    如何利用pyecharts绘制炫酷的关系网络图 这是本学期在大数据哲学与社会科学实验室做的第六次分享了. 第一次分享的是: 如何利用"wordcloud+jieba"制作中文词云? ...

  • 不写代码,从0到1教你制作炫酷可视化大屏

    从大屏可视化出现以来,一直深受各界企业的追捧,最典型的就是每年淘宝的双十一销售额大屏,最近我也刚接触了一个大屏项目,借此总结了一些可视化大屏制作经验与大家分享.文章写的比较细,请耐心阅读 可视化大屏制 ...

  • 教你快速制作一款高级的可视化大屏

    可视化大屏成了最近两年最火爆的需求,一方面甲方公司都想做炫酷的可视化大屏,来用作公司数据展示,还有些特殊行业如交通.运输.工厂制造,会做更高级的3D建模等. 另一方面市场上有很多厂商都声称能够做大屏, ...

  • 不用写代码的可视化大屏,一口气把工具和方法都教给你

    原创IT技术管理那些事儿2021-01-29 16:53:58 前段时间公司的领导偶尔看了阿里.天猫的大屏,也非要吵着要做可视化大屏,但是我们公司没有阿里天猫那样的技术基础和资金支撑,这可让我们IT部 ...

  • 熬夜整理出40张可视化大屏模板,不敲一个代码就能直接套用

    前段时间,一个在交通行业做IT的朋友跟我聊天的时候提到,以前有这种监控可视化大屏展示需求时,一般都是给外包项目方去通过代码等形式进行开发,然后经过美工不断优化调整,最终再交付到相关部门进行评审和上线. ...

  • 学会这个神器和技巧,低代码开发高端可视化大屏

    随着企业数字化建设的发展,领导对数据价值的利用意识越来越高,数据分析和展现需求日益增长.对于管理层来说,可视化大屏和驾驶舱项目尤其受欢迎,这两年我遇到的BI项目有半数会有开发管理驾驶舱.大屏的需求. ...

  • 那些令人拍案叫绝的可视化大屏,如何不用代码也能实现?

    随着工业4.0变革的推进,逐步开始走向了利用信息化技术促进产业变革的时代,也就是智能化时代.伴随着时代的走向,工业互联网 和 5G网络 逐渐揭开了帷幕,数据不再是单纯的数据信息源,数据可以结合一些可视 ...

  • 《可视化大屏白皮书1.0》出炉!关于帆软可视化大屏,你想知道的都在这!

    以下为<帆软可视化大屏白皮书1.0>部分内容,全文下载请直接下滑至文末: 一.什么是大屏 大屏,是以大屏幕为载体进行可视化展示的统称.可视化通常被理解为一个制作图表.生成图形图像的简单过程 ...

  • 掌握四点就能做好数据可视化大屏!

    数据的变化,往往能够真实地反映出显著的变化.而在展馆中运用数据可视化大屏展示企业数据,真实.客观地让用户了解到企业的发展变化,让更多用户信任企业,从而提高企业的知名度. 展馆中若是想要做出好的数据可视 ...

  • 基础|详细介绍陶瓷制作和烧制工艺全流程

    说到陶瓷,大家最熟悉的是各种器皿.在<天工开物>中说到:通过水火交互作用,将黏土烧制的陶器.砖.瓦.罂.瓮.祭器.摆件和厨房瓷器都归于此类. 陶瓷是我国对人类文明的重大贡献,古代中国传统陶 ...