1 回答
TA贡献1784条经验 获得超2个赞
实现此目的的一种方法是创建一个子图网格,大小为 n_columns * 2(一个用于直方图,一个用于表格。例如:
from plotly.subplots import make_subplots
titles = [[f"Histogram of {col}", f"Stats of {col}"] for col in df.columns]
titles = [item for sublist in titles for item in sublist]
fig = make_subplots(rows=3,
cols=2,
specs=[[{"type": "histogram"}, {"type": "table"}]] *3,
subplot_titles=titles)
for i, col in enumerate(df.columns):
fig.add_histogram(x=df[col],
row=i+1,
col=1)
fig.add_table(cells=dict(
values=df[col].describe().reset_index().T.values.tolist()
),
header=dict(values=['Statistic', 'Value']),
row=i+1,
col=2
)
fig.update_layout(showlegend=False)
fig.show()
fig.write_image("example_output.pdf")
最后,您可以按照pdf此处的.write_image()说明保存完整的图(6 个图表) 。您需要安装实用程序才能执行此操作。输出将如下所示(您当然可以自定义它):kaleidoorca
如果您需要将每个图形+表格保存在 PDF 的单独页面上,您可以利用该PyPDF2
库。因此,首先,您将每个图形+表格保存为单个 PDF(如上所述,但您将保存与您拥有的列数一样多的 PDF 文件,而不是 1)
添加回答
举报