返回介绍

第44单元 用 pandas 绘图

发布于 2024-01-28 22:01:16 字数 2158 浏览 0 评论 0 收藏 0

pandas的frame和series都支持pyplot绘图。使用无参数的方式调用plot()函数时,可以绘制series或所有frame列的具有标签的线图。如果调用plot()时指定了可选参数x和y,则函数将相应地绘制列x与列y。

通过调整可选参数kind,pandas还可以支持其他类型的绘图。参数的允许值如下:绘制条形图的"bar"和"barh"、直方图的"hist"、箱形图的"box"、密度图的"kde"、面积图的"area"、散点图的"scatter"、六边形图形的"hexbin",以及饼图的"pie"。所有的绘图都可以进行各种装饰,例如图例、色彩条、可控点的尺寸(选项s)和颜色(选项c)。

举个例子,让我们绘制整个NIAAA观察期间新罕布什尔州的葡萄酒与啤酒的消费量,并根据年份对每个数据点进行着色:

scatter-plot.py

import matplotlib, matplotlib.pyplot as plt
import pickle, pandas as pd

# 在此之前NIAAA frame已完成了pickle操作
alco = pickle.load(open("alco.pickle", "rb"))

# 选择一个优美的绘图样式
matplotlib.style.use("ggplot")

# 绘制散点图
STATE = "New Hampshire"
statedata = alco.ix[STATE].reset_index()
statedata.plot.scatter("Beer", "Wine", c="Year", s=100, cmap=plt.cm.autumn)

plt.title("%s: From Beer to Wine in 32 Years" % STATE)
plt.savefig("../images/scatter-plot.pdf")

从绘制的图中不难看出,在32年的观察期中,新罕布什尔州经历了从喝啤酒到喝葡萄酒的转变。但愿这样的过程并不痛苦,也没有造成人口减少。

我们通过子模块pandas.tools.plotting来结束对绘图部分的介绍。该模块具有用于绘制安德鲁斯曲线andrews_curves()、滞后图lag_plot()和自相关autocorrelation_plot()的工具。但更重要的是,pandas.tools.plotting具有用于散点矩阵的工具。散点矩阵是一个非常优秀的探索数据的工具,它对应的函数实现是scatter_matrix(),该函数能显示主对角线中每列数据的直方图以及所有其他矩阵中任意两列的双变量散点图。

scatter-matrix.py

from pandas.tools.plotting import scatter_matrix
import matplotlib, matplotlib.pyplot as plt
import pickle, pandas as pd

# 在此之前NIAAA frame已完成了pickle操作
alco = pickle.load(open("alco.pickle", "rb"))

# 选择一个优美的绘图样式
matplotlib.style.use("ggplot")

# 绘制散点矩阵
STATE = "New Hampshire"
statedata = alco.ix[STATE].reset_index()
scatter_matrix(statedata[["Wine", "Beer", "Spirits"]],
               s=120, c=statedata["Year"], cmap=plt.cm.autumn)

plt.tight_layout()
plt.savefig("../images/scatter-matrix.pdf")

我们再次对新罕布什尔州当地人的饮酒习惯进行分析。这一次,我们将32年记录中每年三种酒的六对两两组合同时绘制在一幅图中:

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

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

发布评论

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