我有一个脚本,它绘制一些熊猫数据,然后使用plt.show()交互地显示绘图,或者使用plt.savefig(args.out)将其保存到文件中。
import matplotlib.pyplot as plt
# set up the dataframe here
ax = df.plot.line(x=0, title=args.title, figsize=(12,8), grid=True, **kwargs)
if (args.out):
vprint("Saving figure to ", args.out, "...")
plt.savefig(args.out)
else:
vprint("Showing interactive plot...")
plt.show()问题是,默认的matplotlib后端对于我用savefig保存到文件的场景很重要吗?这在另一种情况下肯定很重要,因为它用于显示交互式绘图,但如果我调用savefig,是否完全使用了另一个后端?
发布于 2019-12-07 09:51:45
在显示图形时,后端显然很重要,因为它提供了两件事:
在保存图形时,只有前者很重要。但是,matplotlib提供了多种导出格式。最后,选择的后端将确定保存图形时要执行的操作,并且在大多数情况下,将使用现有的非交互式后端之一来生成输出文件。
下面是一些例子:
TkAgg将使用tkinter GUI来显示图形。为了保存png图形,它将回退到基本的Agg后端来生成png文件。对于保存svg文件,它将回退到svg后端,对于保存pdf,它将回退到pdf后端,等等。
TkCairo,将使用tkinter GUI来显示图形。为了保存png图形,它将回退到基本的Cairo后端来生成png文件。对于其余部分,同上。
Qt5Agg将使用PyQt图形用户界面显示图形。对于png,将回退到Agg。对于其他人,同上。
其他后端也是类似的。
https://stackoverflow.com/questions/59222218
复制相似问题