from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg
if __name__ == "__main__":
fig1 = ...
print("start plotting")
canvas = FigureCanvasQTAgg(fig1)
canvas.draw()
canvas.show()
我已写入函数,它返回一个matplotlib.figure对象。我已经运行了上面的脚本。它已经崩溃了Python。我该怎么做?
我使用FigureCanvasQTAgg和matplotlib.figure而不是使用matplotlib.pyplot的原因是,Figure对象也允许我做类似的事情
with PdfPages(...) as pdf_writer:
canvas = FigureCanvasPDF(fig1)
pdf_writer.savefig(fig1)
pdf_writer.savefig(fig1)
在单个pdf文件中写出同一个数字的两个副本。它还允许我在同一个PDF中写入多个数字。我不知道我们只能使用matplotlib.pyplot
来做到这一点答案 0 :(得分:2)
在matplotlib中显示图形的最简单和最好的方法是使用pyplot接口:
import matplotlib.pyplot as plt
fig1= plt.figure()
plt.show()
要以pdf文件的形式创建输出,请使用:
import matplotlib.pyplot as plt
fig1= plt.figure()
plt.savefig("filename.pdf")
如果要将多个数字保存到同一个pdf文件,请使用matplotlib.backends.backend_pdf.PdfPages("output.pdf")
import matplotlib.pyplot as plt
import matplotlib.backends.backend_pdf
fig1= plt.figure()
ax=fig1.add_subplot(111)
outfile = "output.pdf"
with matplotlib.backends.backend_pdf.PdfPages(outfile) as pdf_writer:
pdf_writer.savefig(fig1)
pdf_writer.savefig(fig1)
如何保存从同一功能创建的多个数字的完整示例将是
import matplotlib.pyplot as plt
import matplotlib.backends.backend_pdf
def plot(data):
fig= plt.figure()
ax = fig.add_subplot(111)
ax.plot(data)
return fig
fig1 = plot([1,2,3])
fig2 = plot([9,8,7])
outfile = "output.pdf"
with matplotlib.backends.backend_pdf.PdfPages(outfile) as pdf_writer:
pdf_writer.savefig(fig1)
pdf_writer.savefig(fig2)
FigureCanvasQTAgg
用于PyQt GUI,如果你想使用它,你需要先创建它。 This question向您展示了如何做到这一点,但仅仅显示或保存数字似乎有点过分。