gpt4 book ai didi

python - 将pandas数据框的 "Out[]"表另存为图

转载 作者:IT老高 更新时间:2023-10-28 21:04:10 26 4
gpt4 key购买 nike

这似乎是一个无用的功能,但它对我很有帮助。我想保存我在 Canopy IDE 中得到的输出。我不认为这是特定于 Canopy 的,但为了清楚起见,这就是我使用的。例如,我的控制台 Out[2] 就是我想要的:

enter image description here

我认为格式非常好,每次都复制而不是保存输出会浪费时间。所以我的问题是,我怎样才能掌握这个数字?理想情况下,实现将类似于标准方法,因此可以这样完成:

from matplotlib.backends.backend_pdf import PdfPages

pp = PdfPages('Output.pdf')
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
df.plot(how='table')
pp.savefig()
pp.close()

注意:我知道之前有人问过一个非常相似的问题 (How to save the Pandas dataframe/series data as a figure?),但它从未得到答案,我想我已经更清楚地说明了这个问题。

最佳答案

这是一个有点老套的解决方案,但它可以完成工作。你想要一个.pdf,但你得到一个奖励.png。 :)

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

from PySide.QtGui import QImage
from PySide.QtGui import QPainter
from PySide.QtCore import QSize
from PySide.QtWebKit import QWebPage

arrays = [np.hstack([ ['one']*3, ['two']*3]), ['Dog', 'Bird', 'Cat']*2]
columns = pd.MultiIndex.from_arrays(arrays, names=['foo', 'bar'])
df =pd.DataFrame(np.zeros((3,6)),columns=columns,index=pd.date_range('20000103',periods=3))

h = "<!DOCTYPE html> <html> <body> <p> " + df.to_html() + " </p> </body> </html>";
page = QWebPage()
page.setViewportSize(QSize(5000,5000))

frame = page.mainFrame()
frame.setHtml(h, "text/html")

img = QImage(1000,700, QImage.Format(5))
painter = QPainter(img)
frame.render(painter)
painter.end()
a = img.save("html.png")

pp = PdfPages('html.pdf')
fig = plt.figure(figsize=(8,6),dpi=1080)
ax = fig.add_subplot(1, 1, 1)
img2 = plt.imread("html.png")
plt.axis('off')
ax.imshow(img2)
pp.savefig()
pp.close()

欢迎编辑。

关于python - 将pandas数据框的 "Out[]"表另存为图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24574976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com