可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I want to save more than 1 plot to a pdf file. Here is my code:
import matplotlib.pyplot as plt from matplotlib.backends.backend_pdf import PdfPages def function_plot(X,Y): plt.figure() plt.clf() pp = PdfPages('test.pdf') graph = plt.title('y vs x') plt.xlabel('x axis', fontsize = 13) plt.ylabel('y axis', fontsize = 13) pp.savefig(graph) function_plot(x1,y1) function_plot(x2,y2)
I know that my ideas are scrambled but I can't find the way to write my code. The thing is that I need my graphs to have labeled x and y axis.
回答1:
I was able to solve it. My mistake was that pp.savefig()
should not take arguments.
Here is my final code:
from matplotlib.backends.backend_pdf import PdfPages import numpy as np import matplotlib.pyplot as plt x1 = np.arange(10) y1 = x1**2 x2 = np.arange(20) y2 = x2**2 pp = PdfPages('test.pdf') def function_plot(X,Y): plt.figure() plt.clf() plt.plot(X,Y) plt.title('y vs x') plt.xlabel('x axis', fontsize = 13) plt.ylabel('y axis', fontsize = 13) pp.savefig() function_plot(x1,y1) function_plot(x2,y2) pp.close()
回答2:
Try this.
from matplotlib.backends.backend_pdf import PdfPages import numpy as np import matplotlib.pyplot as plt x1 = np.arange(10) y1 = x1**2 x2 = np.arange(20) y2 = x2**2 def function_plot(X,Y, pp): plt.figure() plt.clf() plt.plot(X,Y) graph = plt.title('y vs x') plt.xlabel('x axis', fontsize = 13) plt.ylabel('y axis', fontsize = 13) pp.savefig(plt.gcf()) with PdfPages('test.pdf') as pp: function_plot(x1,y1, pp) function_plot(x2,y2, pp)