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)
添加回答
舉報