matplotlib实际上是一种比较低级的工具。要绘制一张图表,你组装一些基本 组件就行:数据展示(即图表类型:线型图、柱状图、盒形图、散布图、等 值线图等)、图例、标题、刻度标签以及其他注解型信息。
在pandas中,我们有多列数据,还有行和列标签。pandas自身就有内置的方 法,用于简化从DataFrame和Series绘制图形。另一个库seaborn(https:// seaborn.pydata.org/),由Michael Waskom创建的静态图形库。Seaborn简 化了许多常见可视类型的创建。
引入seaborn会修改matplotlib默认的颜色方案和绘图类型,以提 高可读性和美观度。即使你不使用seaborn API,你可能也会引入seaborn,作为提高美观度和绘制常见matplotlib图形的简化方法。
目录
1. 线型图
Series和DataFrame都有一个用于生成各类图表的plot方法。默认情况下,它 们所生成的是线型图。
s = pd.Series(np.random.randn(10).cumsum(), index=np.arange(0, 100, 10))
s.plot()
该Series对象的索引会被传给matplotlib,并用以绘制X轴。可以通过use_index=False禁用该功能。X轴的刻度和界限可以通过xticks和xlim选项进 行调节,Y轴就用yticks和ylim。plot参数的完整列表请参见下表。我只会讲 解其中几个,剩下的就留给读者自己去研究了。
pandas的大部分绘图方法都有一个可选的ax参数,它可以是一个matplotlib的subplot对象。这使你能够在网格布局中更为灵活地处理subplot的位置。
DataFrame的plot方法会在一个subplot中为各列绘制一条线,并自动创建图 例(如下图所示):
df = pd.DataFrame(np.random.randn(10, 4).cumsum(0),
columns=['A', 'B', 'C', 'D'],
index=np.arange(0, 100, 10))
df.plot()
plot属性包含一批不同绘图类型的方法。例如,df.plot()等价于df.plot.line()。 后面会学习这些方法。
plot的其他关键字参数会被传给相应的matplotlib绘图函数,所以 要更深入地自定义图表,就必须学习更多有关matplotlib API的知识。
DataFrame还有一些用于对列进行灵活处理的选项,例如,是要将所有列都 绘制到一个subplot中还是创建各自的subplot。
2.柱状图
plot.bar()和plot.barh()分别绘制水平和垂直的柱状图。这时,Series和DataFrame的索引将会被用作X(bar)或Y(barh)刻度
fig, axes = plt.subplots(2, 1)
data = pd.Series(np.random.rand(16), index=l