查看原文
其他

使用 pyecharts 打造酷炫的 BI 大屏

The following article is from 木下学Python Author 木下瞳

点击上方“Python编程时光”,选择“加为星标
第一时间关注Python技术干货!

后台回复关键字 “黑魔法”,即可获取明哥整理的《Python黑魔法指南




前言

有两份广州的美食数据来自 A,B 两个网站,以及一份它们的地理信息数据:




为了给去广州的游玩的人提供一些美食的参考,制作一个 BI 仪表盘,需求如下:

  1. 广州美食地图分布(广州地图)

  2. 哪个行政区美食最多(饼图)

  3. 集中在哪些商圈(前十)(柱状图)

  4. 星级分布(圆环图)

  5. 美食类型(条形)

  6. 推荐美食词云(词云)

  7. 评论数,人均价格,口味评分,环境评分,服务评分的相关性(热力图)

  8. 综合评分=(口味评分+环境评分+服务评分)/3 与人均价格关系(散点图)

  9. 制作可视化仪表盘




数据预处理

导入库并查看数据:




A,B 两数据的结构是一样的,但有两列的列名不同,我们修改 A 的列名后,并把 A 数据中【人均价格】列中的【元】去掉,再纵向合并两个数据集,并去重,接着他们的地理信息数据以【店铺ID】为键进行连接:




根据我们的需求,选择需要用到的列并查看有无缺失值需要处理:




从结果上看并没有缺失值,接下来就先制作每一个需求的图表。




图表制作

绘制的每一张图表,需要封装成函数给仪表盘使用,每一张图表没有使用默认的主题,而是使用了一种紫色的主题。

广州美食地图分布:选取经纬度,以及店铺名称,在广州地图上绘制散点,一个点代表一家店铺:





美食主要集中在天河,越秀,海珠,荔湾,番禺,白云,黄埔区。

哪个行政区美食最多:需要先计算各个行政区的美食数量,在绘制饼图:





可以看到美食数量最多行政区的是天河区。

集中在哪些商圈:需要先计算各个出现商圈的次数,在绘制柱状图:





美食数量最多的商圈是珠江新城。

星级分布:需要先计算各个出现的星级的数量,在绘制圆环图:





四星与准五星占了大多数。

美食类型:计算各个类型的数量,绘制条形图:





从结果看,店铺美食类型为西餐的是比较多的。

推荐美食:在每个店的数据中,都有推荐美食,把所有美食连接起来,并计算词频,绘制词云:





评论数,人均价格,口味评分,环境评分,服务评分的相关性:绘制他们两两的相关性热力图,越偏红,正相关性越强:





综合评分与人均价格关系:综合评分=(环境评分+口味评分+服务评分)/3,新增一列保存起来,绘制它与人均价格散点图:





接下来就把这些图合成仪表盘




仪表盘

pyecharts 官网文档:

http://pyecharts.org/#/zh-cn/composite_charts?id=page%ef%bc%9a%e9%a1%ba%e5%ba%8f%e5%a4%9a%e5%9b%be




我们上面的绘图,都是封装成函数的,接下来使用下面代码调用绘制函数(page.add 中就是,这里折叠了):




上面代码就绘制图表并保存为 html 文件,需要注意的是 18-19 行为注释。

调用绘制函数后生成了一个 page.html 文件,里面包含了所有图表,通过拖拽图表设计成我们想要布局的样子(下图是随便放的)然后点击左上角【save config】保存布局的 json 文件:




修改代码,17 行注释,18-19 行取消注释,因为我们已经生成了图表不需要再生成一次,在生成一次的话图表 id 会改变,那刚刚下载布局文件就用不了了:




page.html 为生成的所有图表的文件

page.json 为下载的布局文件

仪表盘.html 为布局好的的仪表盘文件

打开仪表盘.html:




这样我们就完成了 pyecharts 仪表盘的制作。




源码获取

源码地址:https://github.com/5zjk5/guanzgzhou_food




 final

看100遍不如练习一遍,利用好碎片时间,会让你短时间内成长,立刻行动起来吧!




推荐阅读



太赞了!《Python 黑魔法指南》终于面世了

玩转 PyCharm ,这篇文章就够了

5年Python的我,总结了这90条写 Python 程序的建议

代码被反编译了?这两个小技巧能帮到你

pip install 和conda install有什么区别吗?

520情人节:属于Python 程序员的脱单攻略大合集




长按下图  ➡   关注博主

(按左边关注 Python, 按右边关注 Goalng


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存