在pandas和matplotlib中,为什么不直接在数据帧上调用plt?

时间:2018-05-22 03:40:04

标签: python pandas matplotlib

我不清楚为什么要这样做:

import pandas as pd
import matplotlib.pyplot as plt

df.boxplot(column='initial_cost', by='Borough', rot=90)

plt.show()

数据框如何与plt.show()绑定?我已经完成了一些网络搜索,甚至看了一下文档(!)但是找不到任何具体的解决方法。

我希望更像是:

boxplot = df.boxplot(column='initial_cost', by='Borough', rot=90)
plt.show(boxplot)

甚至是这样的事情:

boxplot = df.boxplot(column='initial_cost', by='Borough', rot=90)
boxplot.plt.show()

1 个答案:

答案 0 :(得分:2)

Matplotlib提供了一个MATLAB - 就像状态机pyplot模块,在实例化和管理绘制所需的所有对象时需要注意。曲线图。

pandas以同样的方式挂钩。当您致电时,需要加载pyplot并创建matplotlib FigureAxes,多个Line2D对象以及制作箱线图的所有内容。

当您致电plt.show()时,它将跟踪您使用状态机API创建的所有数字,使用这些数字创建GUI并负责显示它。

如果您需要更多控制,您当然可以使用面向对象的API自行完成。创建一个图形,轴,手动绘制画布,如果需要,它就在那里。

据我所见,通常的做法是两者兼而有之:在需要时挂钩到面向对象的API,但仍然让pyplot负责显示或保存文件中的所有内容。