将熊猫数据框的“ Out []”表另存为一个图

用户名

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

在此处输入图片说明

我认为格式化非常好,每次重现此格式而不是仅保存输出都将浪费时间。所以我的问题是,我该如何处理这个数字?理想情况下,隐含方法将类似于标准方法,因此可以这样进行:

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()

注意:我意识到之前曾问过一个非常类似的问题(如何将Pandas数据框/系列数据保存为数字?),但从未收到答案,我想我已经更清楚地陈述了这个问题。

基思

这是一个有点棘手的解决方案,但可以完成工作。您想要一个.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()

欢迎编辑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章