I am trying to save scatter plots from a list of dataframes in one pdf file using this:
pdf = matplotlib.backends.backend_pdf.PdfPages("./output.pdf")
for df in list_degs_dfs:
dfplt = df.plot.scatter("DEratio", "MI_scaled")
pdf.savefig(dfplt)
pdf.close()
But I get this error:
ValueError: No figure AxesSubplot(0.125,0.11;0.775x0.77)
I thought it can be an issue with converting the plots to matplotlib figure and tried this:
import matplotlib.pyplot as plt
pdf = matplotlib.backends.backend_pdf.PdfPages("./output.pdf")
for df in list_degs_dfs:
dfplt = df.plot.scatter("DEratio", "MI_scaled")
dfplt = plt.figure(dfplt)
pdf.savefig(dfplt.Figure)
pdf.close()
and got this:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'AxesSubplot'
How to save all dfplt figrues from all df dataframes from a list of dataframes in one file?
CodePudding user response:
savefig
should not take any arguments, it will save the currently active figure handle.
pdf = matplotlib.backends.backend_pdf.PdfPages("./output.pdf")
for df in list_degs_dfs:
dfplt = df.plot.scatter("DEratio", "MI_scaled")
pdf.savefig() # saves the active handle
pdf.close()