当前位置:   article > 正文

Pyecharts实践:数据可视化大屏_pyecharts 大屏

pyecharts 大屏

一、引言

        在当今的大数据时代,数据分析与可视化已经成为我们理解和解释数据的重要工具。Pyecharts是一个强大的Python可视化库,它可以帮助我们轻松地创建各种类型的图表,包括折线图、柱状图、饼图、散点图等。在本篇文章中,我将分享一些我学习到的Pyecharts进行数据分析和可视化的实践经验。

二、Pyecharts简介

        Pyecharts是一个基于Python的开源可视化库,它能够生成Echarts图表的JSON数据,并使用JavaScript进行渲染。Echarts是一个使用JavaScript开发的,开源的数据可视化库,它可以生成各种类型的图表,包括折线图、柱状图、饼图、散点图等。

三、Pyecharts实践案例

        接下来,我们将通过一系列的实践案例,带领你逐步掌握Pyecharts的使用技巧。以下实验将使用线型面积图、液态图、map地图和堆叠柱状图四个图表来创建一个2*2的数据可视化大屏。

  • 1.数据准备与清洗

        在进行数据可视化之前,我们需要对数据进行清洗和整理。这一步通常涉及到数据筛选、缺失值处理、异常值检测等操作。在Python中,我们可以使用Pandas库来进行这些操作。

  • 使用pyecharts库来生成一个堆叠柱状图(Bar)

导入需要用到的库

  1. from pyecharts import options as opts #用于设置图表选项
  2. from pyecharts.charts import Bar #用于创建柱状图
  3. from pyecharts.faker import Faker #类用于生成模拟数据

创建一个柱状图对象

  1. Bar = (
  2. Bar()
  3. .add_xaxis(Faker.choose())
  4. .add_yaxis("商家A", Faker.values(), stack="stack1")
  5. .add_yaxis("商家B", Faker.values(), stack="stack1")
  6. .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  7. .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠数据(全部)"))
  8. )

        最后使用.render_notebook()渲染Line图表,可以直接在NoteBook中查看生成的图表,而不需要保存为HTML文件后再打开

line.render_notebook() #使用.render_notebook()渲染图表

得到的图像如下

  • 2.使用pyecharts库来生成一个线型面积图(Line)

导入需要用到的库

  1. import pyecharts.options as opts
  2. from pyecharts.charts import Line #用于创建线型图表
  3. from pyecharts.faker import Faker #用于生成模拟数据

创建一个线性图表对象并渲染图像

  1. Line = (
  2. Line() #创建一个线型图表对象
  3. .add_xaxis(Faker.choose())
  4. .add_yaxis("商家A", Faker.values(), is_smooth=True)
  5. .add_yaxis("商家B", Faker.values(), is_smooth=True)
  6. .set_series_opts(
  7. areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
  8. label_opts=opts.LabelOpts(is_show=False),
  9. )
  10. .set_global_opts(
  11. title_opts=opts.TitleOpts(title="Line-面积图(紧贴 Y 轴)"),
  12. xaxis_opts=opts.AxisOpts(
  13. axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
  14. is_scale=False,
  15. boundary_gap=False,
  16. ),
  17. )
  18. )
  19. Line.render_notebook()

渲染后图像如下:

  • 3.使用pyecharts库来生成一个液态图(Liquid)

导入模块库

  1. from pyecharts import options as opts
  2. from pyecharts.charts import Liquid #用于创建线型图表
  3. from pyecharts.globals import SymbolType #用于定义图表的形状类型

创建一个地图对象并渲染Liquid图表

  1. Liquid = (
  2. Liquid()
  3. .add("lq", [0.3, 0.7], is_outline_show=False, shape=SymbolType.DIAMOND)
  4. .set_global_opts(title_opts=opts.TitleOpts(title="Liquid-Shape-Diamond"))
  5. )
  6. Liquid.render_notebook()

查看渲染后的图

  1. 4.使用pyecharts库来生成一个中国地图(Map)

导入用到的库

  1. from pyecharts import options as opts
  2. from pyecharts.charts import Map
  3. from pyecharts.faker import Faker

创建一个地图对象并渲染创建一个地图对象并渲染map图表

  1. map = (
  2. Map()
  3. .add("中国地图", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
  4. .set_global_opts(title_opts=opts.TitleOpts(title=""))
  5. )
  6. map.render_notebook()

得下图

四、创建一个带有当前日期的大屏标题

  1. from pyecharts.charts import Pie
  2. from pyecharts import options as opts
  3. from datetime import datetime
  4. now_time = datetime.now().strftime('%Y-%m-%d') # 获取当前时间
  5. big_title = (
  6. Pie() # 不画图,只显示一个标题,用来构成大屏的标题
  7. .set_global_opts(
  8. title_opts=opts.TitleOpts(title="大屏标题",
  9. title_textstyle_opts=opts.TextStyleOpts(font_size=40,
  10. # color='#FFFFFF',
  11. ),
  12. subtitle = f'截至:{now_time}',
  13. pos_top=10
  14. )
  15. )
  16. )
  17. big_title.render_notebook()

所得图表如下

  • 整合多个图表

        为了更好地展示数据之间的关系,我们可能需要将多个图表整合到一个大屏中。Pyecharts支持在一个页面上添加多个图表,我们可以使用Page类来创建一个网格或页面,然后将各个图表添加到其中。

  1. from pyecharts.charts import Page
  2. page = Page()
  3. page.add(
  4. big_title, #大屏标题
  5. Bar, #堆叠柱状图
  6. Line, #线型面积图
  7. Liquid, #液态图
  8. map #地图
  9. )
  10. page.render('page.html') # 将页面渲染为一个 HTML 文件,文件名为 'page.html',可以用任何 Web 浏览器打开它来查看图表

导入用于解析HTML和XML文档的Python库

from bs4 import BeautifulSoup '
运行
  • 定制图表样式

        在创建基本的图表后,我们还需要根据需求定制图表的样式。Pyecharts提供了丰富的样式选项,如颜色、字体、图例等。通过set_global_opts方法,我们可以设置图表的标题、坐标轴标题等全局选项。

  1. with open("page.html", "r+", encoding='utf-8') as html:
  2. html_bf = BeautifulSoup(html, 'lxml')
  3. divs = html_bf.select('.chart-container') # 根据css定位标签,选中图像的父节点标签
  4. divs[0]["style"] = "width:420px;height:55px;position:absolute;top:20px;left:350px;border-style:dashed;border-color:#444444;border-width:0px;"
  5. divs[1]["style"] = "width:420px;height:274px;position:absolute;top:100px;left:30px;border-style:solid;border-color:#444444;border-width:2px;"
  6. divs[2]["style"] = "width:420px;height:274px;position:absolute;top:100px;left:470px;border-style:solid;border-color:#444444;border-width:2px;"
  7. divs[3]["style"] = "width:420px;height:274px;position:absolute;top:400px;left:30px;border-style:solid;border-color:#444444;border-width:2px;"
  8. divs[4]["style"] = "width:420px;height:274px;position:absolute;top:400px;left:470px;border-style:solid;border-color:#444444;border-width:2px;"
  9. body = html_bf.find("body") # 根据标签名称定位到body标签
  10. body["style"] = "background-color:white;" # 修改背景颜色
  11. html_new = str(html_bf) # 将BeautifulSoup对象转换为字符
  12. html.seek(0, 0) # 光标移动至
  13. html.truncate() # 删除光标后的所有字符内容
  14. html.write(html_new) # 将由BeautifulSoup对象转换得到的字符重新写入html文件
  15. html.close()

五、发布与分享

        最后,我们将整个大屏发布到Web应用程序中,或者分享给其他人查看。Pyecharts支持将图表渲染为HTML文件,这样我们就可以将整个大屏嵌入到Web页面中,或者将HTML文件分享给他人查看。

六、总结与展望

        通过以上的实践案例,我们可以看到Pyecharts在数据可视化大屏方面的强大功能和灵活性。它不仅可以帮助我们快速地创建出各种类型的图表,还可以定制图表的样式和整合多个图表。同时,Pyecharts还支持多平台展示和分享,使得我们能够轻松地将数据可视化大屏嵌入到Web应用程序中或分享给他人查看。未来,随着Pyecharts的不断更新和完善,相信其在数据可视化领域的应用将会更加广泛和深入。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/841688
推荐阅读
相关标签
  

闽ICP备14008679号