如何基于pandas数据框导出到pdf图形?

ℕʘʘ*_*ḆḽḘ 6 python matplotlib pandas

我有一个pandas数据帧,我正在使用有用的.plot()方法.

数据框看起来像

col1   col2   col3
1      2      3
7      0      3
1      2      2
Run Code Online (Sandbox Code Playgroud)

因此df.plot(),我用它来获得我想要的图表.

问题是,我想将图表导出为pdf.理想情况下,我还可以生成其他图表(基于此数据框)并将其添加到pdf中.

有可能这样做吗?谢谢!

tmd*_*son 12

要将单个数字输出为pdf,您可以使用plt.savefig('myfile.pdf'):

import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame([[1,2,3],[7,0,3],[1,2,2]],columns=['col1','col2','col3'])

df.plot()

plt.savefig('myfile.pdf')
Run Code Online (Sandbox Code Playgroud)

可以输出多种图像一个PDF格式,你可以使用PdfPages,如图所示的例子在这里.

一个最小的例子:

import matplotlib.pyplot as plt
import pandas as pd
from matplotlib.backends.backend_pdf import PdfPages

df = pd.DataFrame([[1,2,3],[7,0,3],[1,2,2]],columns=['col1','col2','col3'])

with PdfPages('multipage_pdf.pdf') as pdf:

    df.plot()
    pdf.savefig()
    plt.close()

    df.plot(kind='bar')
    pdf.savefig()
    plt.close()
Run Code Online (Sandbox Code Playgroud)


fer*_*sta 6

应该执行以下操作:

plot = df.plot()
plot.get_figure().savefig('output.pdf', format='pdf')
Run Code Online (Sandbox Code Playgroud)

实际上取决于您的后端是否支持pdf输出(大多数情况下)。检查:

'pdf' in plot.get_figure().canvas.get_supported_filetypes()
Run Code Online (Sandbox Code Playgroud)

  • 这个答案比当前接受的答案简单得多,如果您从“savefig”中删除“format='pdf'”,它可能会更短。`pandas` 从文件扩展名推断格式,因此只需 `output.pdf` (或 `output.png` 或 `output.svg`)也可以。 (2认同)