返回介绍

6.2 pandas

发布于 2024-01-27 22:10:03 字数 2344 浏览 0 评论 0 收藏 0

pandas 通过提供一个可以作用于序列和数据框的函数 plot,简化了基于序列和数据框中的数据创建图表的过程。plot 函数默认创建折线图,你还可以通过设置参数 kind 创建其他类型的图表。

例如,除了使用 matplotlib 创建标准统计图,还可以使用 pandas 创建其他类型的统计图,比如六边箱图(hexagonal bin plot)、矩阵散点图、密度图、Andrews 曲线图、平行坐标图、延迟图、自相关图和自助抽样图。如果要向统计图中添加第二 y 轴、误差棒和数据表,使用 pandas 可以很直接地实现。

为了说明在 pandas 中创建统计图的方法,我们通过下面的脚本 pandas_plots.py 来演示如何使用数据框中的数据创建一对条形图和箱线图,并将它们并排放置:

 1 #!/usr/bin/env python3
 2 import pandas as pd
 3 import numpy as np
 4 import matplotlib.pyplot as plt
 5 plt.style.use('ggplot')
 6 fig, axes = plt.subplots(nrows=1, ncols=2)
 7 ax1, ax2 = axes.ravel()
 8 data_frame = pd.DataFrame(np.random.rand(5, 3),
 9     index=['Customer 1', 'Customer 2', 'Customer 3', 'Customer 4', 'Customer 5'],
10     columns=pd.Index(['Metric 1', 'Metric 2', 'Metric 3'], name='Metrics'))
11 data_frame.plot(kind='bar', ax=ax1, alpha=0.75, title='Bar Plot')
12 plt.setp(ax1.get_xticklabels(), rotation=45, fontsize=10)
13 plt.setp(ax1.get_yticklabels(), rotation=0, fontsize=10)
14 ax1.set_xlabel('Customer')
15 ax1.set_ylabel('Value')
16 ax1.xaxis.set_ticks_position('bottom')
17 ax1.yaxis.set_ticks_position('left')
18 colors = dict(boxes='DarkBlue', whiskers='Gray', medians='Red', caps='Black')
19 data_frame.plot(kind='box', color=colors, sym='r.', ax=ax2, title='Box Plot')
20 plt.setp(ax2.get_xticklabels(), rotation=45, fontsize=10)
21 plt.setp(ax2.get_yticklabels(), rotation=0, fontsize=10)
22 ax2.set_xlabel('Metric')
23 ax2.set_ylabel('Value')
24 ax2.xaxis.set_ticks_position('bottom')
25 ax2.yaxis.set_ticks_position('left')
26 plt.savefig('pandas_plots.png', dpi=400, bbox_inches='tight')
27 plt.show()

第 6 行代码创建了一个基础图和两个并排放置的子图。第 7 行代码使用 ravel 函数将两个子图分别赋给两个变量 ax1 和 ax2,这样我们就不必使用行和列的索引(例如,axes[0,0] 和 axes[0,1])来引用子图了。

第 11 行代码使用 pandas 的 plot 函数在左侧子图中创建了一个条形图。第 12 和 13 行代码使用 matplotlib 的函数来设置 x 轴和 y 轴标签的旋转角度和字体大小。

第 18 行代码为箱线图单独创建了一个颜色字典。第 19 行代码在右侧子图中创建了一个箱线图,使用 colors 变量为箱线图各部分着色,并将离群点的形状设置为红色圆点。

脚本生成的条形图和箱线图如图 6-6 所示。你可以在 pandas 绘图文档(http://Pandas.pydata.org/Pandas-docs/stable/visualization.html)中学习到创建和设置统计图表的更多信息。

图 6-6:pandas 生成的并排放置的条形图和箱线图

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文