《PySpark大数据分析实战》-27.数据可视化图表Pyecharts介绍

发布时间:2024年01月10日

📋 博主简介

  • 💖 作者简介:大家好,我是wux_labs。😜
    热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
    通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
    通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
    对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。
  • 📝 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~🔥
  • 📝 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~🔥
  • 🎉 请支持我:欢迎大家 点赞👍+收藏??+吐槽📝,您的支持是我持续创作的动力~🔥

《PySpark大数据分析实战》-27.数据可视化图表Pyecharts介绍

前言

大家好!今天为大家分享的是《PySpark大数据分析实战》第3章第4节的内容:数据可视化图表Pyecharts介绍。

图书在:当当京东机械工业出版社以及各大书店有售!

Python数据可视化工具介绍

数据可视化是一种提取有价值数据的有效方法,是数据分析和机器学习中非常重要的一环。它有助于提高分析效率,为机器学习模型提供可靠的数据基础。它可以帮助人们更直观地理解数据,更好地理解数据的趋势和变化,发现潜在的联系,从而帮助人们更好地构建机器学习模型,提高模型的准确性。此外,数据可视化可以帮助人们更好地发现数据中的噪声和异常。通过可视化,可以更容易地发现噪声数据和异常情况,从而减少机器学习模型的误差。常用的Python数据可视化工具包括Matplotlib、Seaborn、Pyecharts等。

Pyecharts介绍

Echarts是一个由百度开源的流行的JavaScript可视化库,它提供了各种图表类型,例如柱状图、折线图、散点图、饼图、地图和热力图等,凭借着良好的交互性,得到了众多开发者的认可。Pyecharts是一个基于Python的可视化工具,它是Echarts的Python版本,用于创建各种交互式图表。Pyecharts提供了一个简单的API,使得人们可以轻松地创建高质量的交互式图表。它支持多种输出格式,包括HTML、PNG、PDF等。与其他Python可视化工具相比,Pyecharts的优点在于强大的交互性和精美的外观效果。可以通过移动鼠标、缩放、拖动等方式与图表进行交互,可以自定义图表的颜色、样式、字体等各种细节。
要在项目中使用Pyecharts,需要在Python环境中安装Pyecharts,命令如下:

$ pip install pyecharts

在使用时需要在Python脚本中导入具体的图形,代码如下:

from pyecharts.charts import xxx

其中,xxx代表具体的图形,例如折线图(Line)、柱状图(Bar)、饼图(Pie)等。

绘制柱状图

Pyecharts柱状图的类定义如下:

class Bar(
    # 初始化配置项,参考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)

柱状图Bar提供了两个方法,add_xaxis()方法用来为柱状图添加x轴,该方法接收一个参数,用来指定x轴的数据项,方法定义如下:

def add_xaxis(
    # x轴数据项
    xaxis_data: Sequence
)

add_yaxis()方法用来为柱状图添加y轴,该方法至少需要两个参数,第1个参数用于指定图例名称,第2个参数用来指定y轴的数据项,其余参数可以保持默认值,方法定义如下:

def add_yaxis(
    # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
    series_name: str,
    # 系列数据
    y_axis: Sequence[Numeric, opts.BarItem, dict]
)

在下面的案例中,以星期作为分类并添加3组随机数绘制了柱状图,代码如下:

from pyecharts.charts import Bar
import numpy as np

bar = (
    Bar(init_opts=opts.InitOpts(width="500px", height="300px"))
    .add_xaxis(["周一", "周二", "周三", "周四", "周五", "周六", "周日"])
    .add_yaxis("第1组", [np.random.randint(5, 15) for _ in range(7)])
    .add_yaxis("第2组", [np.random.randint(5, 15) for _ in range(7)])
    .add_yaxis("第3组", [np.random.randint(5, 15) for _ in range(7)])
)
bar.render()

执行代码,绘制的图形如图所示。

绘制饼图

Pyecharts饼图的类定义如下:

class Pie(
    # 初始化配置项,参考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)

饼图Pie提供了一个方法,add()方法用来为饼图添加数据项,该方法至少需要两个参数,第1个参数用于指定图例名称,第2个参数用于指定饼图的数据项,方法定义如下:

def add(
    # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
    series_name: str,
    # 系列数据项,格式为 [(key1, value1), (key2, value2)]
    data_pair: types.Sequence[types.Union[types.Sequence, opts.PieItem, dict]]
)

在下面的案例中,使用Pyecharts的样例数据绘制饼图,代码如下:

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker

pie = (
    Pie(init_opts=opts.InitOpts(width="500px", height="300px"))
    .add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
)
pie.render()

执行代码,绘制的图形如图所示。

绘制箱型图

Pyecharts箱型图的类定义如下:

class Boxplot(
    # 初始化配置项,参考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)

箱型图Boxplot提供了两个方法,add_xaxis()方法用来为箱型图添加x轴,该方法接收一个参数,用来指定x轴的数据项,方法定义如下:

def add_xaxis(
    # x轴数据项
    xaxis_data: Sequence
)

add_yaxis()方法用来为箱型图添加y轴,该方法至少需要两个参数,第1个参数用于指定图例名称,第2个参数用来指定y轴的数据项,其余参数可以保持默认值,方法定义如下:

def add_yaxis(
    # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
    series_name: str,
    # 系列数据
    y_axis: types.Sequence[types.Union[opts.BoxplotItem, dict]]
)

在下面的案例中,以星期作为分类并添加2组随机数绘制箱型图,代码如下:

from numpy.random import randint as rdi
from pyecharts import options as opts
from pyecharts.charts import Boxplot

d1 = [rdi(40 - rdi(1, 40), 60 + rdi(1, 40), 100).tolist() for _ in range(7)]
d2 = [rdi(40 - rdi(1, 40), 60 + rdi(1, 40), 100).tolist() for _ in range(7)]
box = Boxplot(init_opts=opts.InitOpts(width="500px", height="300px"))
box.add_xaxis(["周一", "周二", "周三", "周四", "周五", "周六", "周日"])
box.add_yaxis("第1组", box.prepare_data(d1))
box.add_yaxis("第2组", box.prepare_data(d2))
box.render()

执行代码,绘制的图形如图所示。

结束语

好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。

文章来源:https://blog.csdn.net/wux_labs/article/details/135501586
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。