第44单元 用 pandas 绘图
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论