python - 将多个数字写入 .pdf 时出错

标签 python pandas pdfpages

当从下面的数据帧和系列生成 pdf 时,pandas 生成两个空白图形并将它们插入到我的 .pdf 文件中。图 1 和图 3 都是空白,而图 2 和图 4 正在打印到 .pdf 文件。我本来希望将下面所有三个图(图 1、图 2 和图 3)写入 .pdf 文件。

import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
from pandas.tools.plotting import bootstrap_plot
from pandas.tools.plotting import scatter_matrix
from pandas import *

range_days = 10
ydate = "2014-09-09"
wdate = "2014-08-31"

c_data = [1,2,3,4,3,2,1,3,4,5]
p_data = [1,2,3,4,3,2,1,3,4,5]
d_data = [1,2,3,4,3,2,1,3,4,5]

d = {"C":Series(c_data, index=date_range(wdate, periods=range_days)),"P": Series(p_data, index=date_range(wdate, periods=range_days)),"D":Series(d_data, index=date_range(wdate, periods=range_days))}
d2 = {"C":d["C"], "P":d["P"]}

ts2 = DataFrame(d2, index=date_range(wdate, periods=range_days))
ts = DataFrame(d, index=date_range(wdate, periods=range_days))

pdf_name = "Metrics_" + str(wdate) + "_to_" + str(ydate)+ ".pdf"
pdf = PdfPages(pdf_name)

#P & C over time
fig1 = plt.figure()
ts2.plot(secondary_y=["P"])
pdf.savefig(fig1)

#Density Plot of C
fig2 = plt.figure()
d["C"].plot(kind="kde")
pdf.savefig(fig2)

#scatter matrix on the data_frame
fig3 = plt.figure()
scatter_matrix(ts, alpha=0.2, figsize=(6, 6), diagonal='kde')
pdf.savefig(fig3)

pdf.close()

最佳答案

删除一些 plt.figure() 变量会删除正在创建的空白图形及其对 pdf 文件的插入。

import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
from pandas.tools.plotting import bootstrap_plot
from pandas.tools.plotting import scatter_matrix
from pandas import *

range_days = 10
ydate = "2014-09-09"
wdate = "2014-08-31"

c_data = [1,3,3,2,3,2,1,6,7,9]
p_data = [0,5,6,11,3,2,1,1,3,4]
d_data = [1,7,3,8,3,2,1,3,2,3]

d = {"C":Series(c_data, index=date_range(wdate, periods=range_days)),"P": Series(p_data, index=date_range(wdate, periods=range_days)),"D":Series(d_data, index=date_range(wdate, periods=range_days))}
d2 = {"C":d["C"], "P":d["P"]}

ts2 = DataFrame(d2, index=date_range(wdate, periods=range_days))
ts = DataFrame(d, index=date_range(wdate, periods=range_days))

pdf_name = "Metrics_" + str(wdate) + "_to_" + str(ydate)+ ".pdf"
pdf = PdfPages(pdf_name)

#P & C over time
ts2.plot(secondary_y=["P"])
pdf.savefig()

#Density Plot of Conversion
plt.figure()
d["C"].plot(kind="kde")
pdf.savefig()

#scatter matrix on the data_frame
scatter_matrix(ts, alpha=0.2, figsize=(6, 6), diagonal='kde')
pdf.savefig()

pdf.close()

关于python - 将多个数字写入 .pdf 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25753406/

相关文章:

python - pandas.to_numeric - 找出它无法解析的字符串

python - Selenium 和 PhantomJS 错误 : "Cannot connect to GhostDriver"

python - Pandas ffill 限制组 nan 仅小于限制

python - 正确读取html表格

python - 将列数据从 pandas df 传递到 Bokeh 绘图函数

python - 使用 matplotlib 将绘图保存为 pdf 文件

python - 绘图图不显示

python - 步入 python-bitstring 2.2.0

python - 将多个图形保存到一个多页 PDF 文档时出错