📋 博主简介
- 💖 作者简介:大家好,我是wux_labs。😜
热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。- 📝 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~🔥
- 📝 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~🔥
- 🎉 请支持我:欢迎大家 点赞👍+收藏??+吐槽📝,您的支持是我持续创作的动力~🔥
大家好!今天为大家分享的是《PySpark大数据分析实战》第3章第4节的内容:数据可视化图表Pyecharts介绍。
数据可视化是一种提取有价值数据的有效方法,是数据分析和机器学习中非常重要的一环。它有助于提高分析效率,为机器学习模型提供可靠的数据基础。它可以帮助人们更直观地理解数据,更好地理解数据的趋势和变化,发现潜在的联系,从而帮助人们更好地构建机器学习模型,提高模型的准确性。此外,数据可视化可以帮助人们更好地发现数据中的噪声和异常。通过可视化,可以更容易地发现噪声数据和异常情况,从而减少机器学习模型的误差。常用的Python数据可视化工具包括Matplotlib、Seaborn、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()
执行代码,绘制的图形如图所示。
好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。