python - Pandas 情节有什么问题?

标签 python matplotlib plot pandas

我正在阅读 Wes McKinney 的一本书,在介绍 pandas 的部分中,他给出了一个绘制 pandas 数据框的简单示例。这是我写的几行:

tz_counts = frame['tz'].value_counts() # frame is a Data Frame
tz_counts[:10] # works fine till here. I can see the key-value I wanted
tz_counts[:10].plot(kind='barh', rot=0)

它只是在屏幕上打印一行

<matplotlib.axes.AxesSubplot object at 0x3d14ed0>

而不是像我期望的那样使用 matplotlib 的绘图函数显示绘图窗口。这里出了什么问题?我怎样才能让它发挥作用?

最佳答案

除非您处于“交互”模式,否则 Matplotlib 不会显示绘图,除非您告诉它。

简答:调用 plt.show()当您准备好显示绘图时。

这将启动您正在使用的任何后端的 gui 主循环,因此它是阻塞的。 (即执行将停止,直到您关闭窗口)

如果你想让它自动显示而不停止执行,你可以打开interactive modeplt.ion()或使用 ipython --pylab .


但是,使用 --pylab ipython 中的模式会将所有 numpy、matplotlib.pyplot 和其他一些东西导入全局命名空间。这对于交互使用来说很方便,但会教坏习惯并覆盖标准库中的函数(例如 minmax 等)。

您仍然可以在 ipython 中使用 matplotlib 的交互模式,而无需使用“pylab”模式来避免全局导入。只需调用 plt.ion()

Matplotlib 的默认 TkAgg后端将在任何 python shell 的交互模式下工作(不仅仅是 ipython )。但是,如果 gui mainloop 在单独的线程中运行,则其他后端无法避免阻止进一步执行。如果您使用不同的后端,那么您需要告诉 ipython这与 --gui=<backend>选项。

关于python - Pandas 情节有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18881540/

相关文章:

r - 如何做一个荒谬的情节

python - matplotlib 两个传说出情节

python - 何时/为何使用 s.shutdown(socket.SHUT_WR)?

python - 使用 GUI 执行 ping 命令

python - 带有日期的 Twinx 会影响 future 绘图的 x 轴间隔

python - Matplotlib:双 y 轴图未对齐

python - 在 Tkinter 中执行函数期间程序卡住

Python 正则表达式屏蔽字符串中的键值对

python - 如何在imshow中绘制单元格边框

matplotlib - sns.clustermap 刻度丢失