第43单元 精通绘图装饰
你可以用pyplot实现对绘图全方面的控制。
可以使用函数xscale(scale)和yscale(scale)来设置和更改轴的刻度("linear"和"log"),可以使用函数xlim(xmin, xmax)和yimim(ymin, ymax)来设置和更改轴的上下限。
可以设置和更改字体、图形和背景颜色,以及字体和点的大小和样式。
还可以使用annotate()添加注释,用arrow()添加箭头,用legend()添加图例。通常来说,要了解完整的装饰函数及其参数列表,需要参阅pyplot文档,但是目前你至少可以将一些箭头、注释和图例添加到你已经熟悉的NIAAA图中:
pyplot-legend.py
import matplotlib, matplotlib.pyplot as plt import pickle, pandas as pd # 在此之前NIAAA frame已完成了pickle操作 alco = pickle.load(open("alco.pickle", "rb")) # 选择合适的数据 BEVERAGE = "Beer" years = alco.index.levels[1] states = ("New Hampshire", "Colorado", "Utah") # 选择一个优美的绘图样式 plt.xkcd() matplotlib.style.use("ggplot") # 绘制图表 for state in states: ydata = alco.ix[state][BEVERAGE] plt.plot(years, ydata, "-o") # 添加带箭头的注释 plt.annotate(s="Peak", xy=(ydata.argmax(), ydata.max()), xytext=(ydata.argmax() + 0.5, ydata.max() + 0.1), arrowprops={"facecolor": "black", "shrink": 0.2}) # 添加标签和图例 plt.ylabel(BEVERAGE + " consumption") plt.title("And now in xkcd...") plt.legend(states) plt.savefig("../images/pyplot-legend-xkcd.pdf")
这里显示的三线图表明了三个州的啤酒消费动态(实际上,这三个州就是啤酒消费量最多、中等和最低的州)。
关于Unicode的说明
如果你的绘图包含Unicode字符(即非拉丁字符),那么你可能需要在绘制文本之前更改默认字体,具体的方法是将函数调用matplotlib.rc("font", family ="Arial")添加到绘图脚本的第一行。
最后,可以使用函数xkcd()将图案的风格改为流行的xkcd3 Web漫画风格。(该函数仅对在调用它之后添加的绘图元素产生影响。)由于某些原因,我们无法将图形保存为PostScript文件,但其他格式的文件都是正常的。尽管如此,你应该避免在官方的演示中包含xkcd样式的绘图,因为它们看起来好像是出自醉汉之手(参见下图)。不管怎样,这个演示本身就是关于酒精消费量的。
pyplot模块本身已经非常强大了,与pandas相结合后还会更加出色,下面我们就来见识一下。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论