问题
在pycharm中,使用matplotlib画图,警告:
matplotlibdeprecationwarning: support for figurecanvases without a required_interactive_framework attribute was deprecated in matplotlib 3.6 and will be removed two minor releases later.
与此同时,画图要么不弹出图像,要么图像很小挤在右侧窗口,不能很好的展示出来。
代码警告且显示图像不全
解决方案
在代码开头添加mpl.use('tkagg'),结束时添加plt.show(),就可以不再发出警告,并且图像窗口会弹出显示。
import matplotlib as mpl import matplotlib.pyplot as plt mpl.use('tkagg') ... plt.show()
也可以将mpl.use('tkagg')用plt.switch_backend('tkagg')替换,效果是一样的,即:
import matplotlib.pyplot as plt plt.switch_backend('tkagg') ... plt.show()
‘tkagg’是matplotlib的其中一个backend的选项,常见的backend有:qt4agg qt5agg tkagg wx wxagg agg cairo gdk ps pdf svg。
agg
:使用反走样技术生成png图像。gtk3agg
:使用gtk3库在gtk3应用程序中渲染绘图。qtagg
:使用qt库在qt应用程序中渲染绘图。wxagg
:使用wxpython库在wxwidgets应用程序中渲染绘图。macosx
:在mac os x系统中使用内置的渲染器渲染绘图。webagg
:将绘图保存为html页面,可以在web浏览器中查看。svg
:将绘图保存为svg矢量图像。
tkagg:
webagg:
注意使用mpl.use('agg')是不能直接弹出图片的。建议换成其他backend。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论