maplotlib.pyplot.show()适用于python但不适用于jupyter控制台

时间:2018-03-25 02:31:44

标签: python matplotlib jupyter

我查看了this questionalso this one。看起来对我来说,matplotlib.pyplot.show()显示了来自python的图形,但不是来自jupyter控制台。

ova为两者返回相同的matplotlibrc文件位置。

但是,当我尝试找到与matplotlib.matplotlib_fname() jupyter控制台一起使用的后端时,告诉我 - matplotlib.rcParams['backend'],无论我修改了哪个后端,都要使用matplotlibrc文件。

另一方面,Python正确地显示了我正在使用的后端;目前'TkAgg'。

我使用'module://ipykernel.pylab.backend_inline'安装了matplotlib。

我使用以下版本:

  • Windows 10
  • Jupyter console 5.2.0
  • Python 2.7.14
  • IPython 5.5.0

我可以使用python,但是对于jupyter控制台来说这也很好。

1 个答案:

答案 0 :(得分:2)

首先请注意plt.show()按预期工作,也在Juypter中。

enter image description here

这使用默认的'module://ipykernel.pylab.backend_inline'后端。此后端由Jupyter设置,与rcParams设置无关。

您可以使用matplotlib.use()

设置后端
import matplotlib
matplotlib.use("TkAgg")
import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.show()

或仅使用IPython magic %matplotlib backendname

%matplotlib tk
import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.show()

您可以使用pyplot.switch_backend()

更改后端
plt.switch_backend("TkAgg")
plt.plot([1,2,3])
plt.show()

或使用相同的IPython魔法

%matplotlib tk
plt.plot([1,2,3])
plt.show()

如果要设置默认使用的后端,请参阅以下问题: Change default backend for matplotlib in Jupyter Ipython