27

下面的代码在 jupyter notebook 中运行时会呈现一个具有颜色渐变格式的表格,我想将其导出到图像文件中。

notebook 呈现的结果 'styled_table' 对象是 pandas.io.formats.style.Styler 类型。

我一直无法找到将 Styler 导出到图像的方法。

我希望有人可以分享一个导出的工作示例,或者给我一些指示。

import pandas as pd
import seaborn as sns

data = {('count', 's25'): 
       {('2017-08-11', 'Friday'): 88.0,
        ('2017-08-12', 'Saturday'): 90.0,
        ('2017-08-13', 'Sunday'): 93.0},
        ('count', 's67'): 
       {('2017-08-11', 'Friday'): 404.0,
        ('2017-08-12', 'Saturday'): 413.0,
        ('2017-08-13', 'Sunday'): 422.0},
        ('count', 's74'): 
       {('2017-08-11', 'Friday'): 203.0,
        ('2017-08-12', 'Saturday'): 227.0,
        ('2017-08-13', 'Sunday'): 265.0},
        ('count', 's79'): 
       {('2017-08-11', 'Friday'): 53.0,
        ('2017-08-12', 'Saturday'): 53.0,
        ('2017-08-13', 'Sunday'): 53.0}}

table = pd.DataFrame.from_dict(data)
table.sort_index(ascending=False, inplace=True)

cm = sns.light_palette("seagreen", as_cmap=True)
styled_table = table.style.background_gradient(cmap=cm)
styled_table

在此处输入图像描述

4

2 回答 2

22

如评论中所述,您可以使用该render属性来获取样式表的 HTML:

html = styled_table.render()

然后,您可以使用将 html 转换为图像的包。例如,IMGKit:HTML 到 IMG 包装器的 Python 库。请记住,此解决方案需要安装wkhtmltopdf,这是一个将 HTML 渲染为 PDF 和各种图像格式的命令行工具。这一切都在 IMGKit 页面中进行了描述。

一旦你有了它,剩下的就很简单了:

import imgkit
imgkit.from_string(html, 'styled_table.png')
于 2018-04-30T09:09:00.460 回答
10

dataframe_image您可以使用来自https://github.com/dexplo/dataframe_image的 dexplo 。安装软件包后,它还允许您将样式器对象保存为以下示例中的图像README

import numpy as np
import pandas as pd
import dataframe_image as dfi

df = pd.DataFrame(np.random.rand(6,4))
df_styled = df.style.background_gradient()

dfi.export(df_styled, 'df_styled.png')
于 2021-01-29T12:42:20.430 回答