下面是我的代码:
from matplotlib.figure import Figure figure = Figure(figsize=(10, 5), dpi=dpi)
我如何让matplotlib显示这个图?我可以在tkinter中显示它,但我不能让它显示在标准的matplotlib窗口中。
qvk1mo1f1#
根据AttributeError while trying to load the pickled matplotlib figure,一个简单的解决方法是:
fig = plt.Figure(...) ...... managed_fig = plt.figure(...) canvas_manager = managed_fig.canvas.manager canvas_manager.canvas.figure = fig fig.set_canvas(canvas_manager.canvas)
请注意,我在环境中遇到了“'Figure'对象没有属性'_original_dpi'”。不确定这是否是我的PyPlot和PyQt5之间的兼容性问题。只是做了一个黑客:
fig._original_dpi = 60
来解决这个问题。不确定是否有更好的解决方案。
rmbxnbpk2#
我通常使用matplotlib的pyplot进行即时生成(或在jupyter notebook中生成图像)。这看起来像下面这样:
import matplotlib.pyplot as plt figure = plt.figure(figsize=(10, 5), dpi=dpi) plt.show()
这将显示所需的(空白)图形。
2条答案
按热度按时间qvk1mo1f1#
根据AttributeError while trying to load the pickled matplotlib figure,一个简单的解决方法是:
请注意,我在环境中遇到了“'Figure'对象没有属性'_original_dpi'”。不确定这是否是我的PyPlot和PyQt5之间的兼容性问题。只是做了一个黑客:
来解决这个问题。不确定是否有更好的解决方案。
rmbxnbpk2#
我通常使用matplotlib的pyplot进行即时生成(或在jupyter notebook中生成图像)。这看起来像下面这样:
这将显示所需的(空白)图形。