1

有谁知道如何在 ipython 笔记本中操作 HTML 函数调用的字体大小?

我一直发现 HTML 函数对各种笔记本任务非常有用,包括。查看 SVG 文件(matplotlib 不太擅长),并获得类似电子表格的 pandas 数据帧渲染。我相信会出现更多方便的用途。

所以我会做这样的事情(假设一个熊猫数据框df):

 from IPython.display import HTML
 df_html = df.to_html()
 HTML(df_html)

如何操作输出的字体大小?我想这需要 HTML 函数中的一个参数,或者在 df_html 文本之前添加一些全局字体大小语句。

有任何想法吗?

谢谢。

4

2 回答 2

7

现在可以使用 的style方法添加 CSS 样式DataFrame,例如

df.style.set_properties(**{'font-size':'6pt'})

请注意,目前这仅适用于值,您不能以这种方式设置标题或索引标签的样式。(这个功能应该在将来添加。)

于 2016-07-24T23:28:42.577 回答
4

在 IPython 中,对象可以有不同的表示形式,如 html、latex、png、文本等。相应的对象方法被调用_repr_xxx_,其中 xxx 是例如 html。如果您检查您的 pandas 对象,则该pd._repr_html_方法存在并在某些逻辑之后调用该df.to_html方法。因此,我建议使用_repr_html_调用而不是to_html方法。

要更改字体大小、颜色等,可以使用封闭的 html 标记。在这里,您想使用 css 还是经典方法都没有关系。你可以使用类似(CSS)的东西

HTML('<span style="font-size:180%; line-height:140%">'+df_html+'</span>'))

或 (HTML)

HTML('<font size=5>'+df_html+'</font>'))

当然,这两个例子给出的结果并不相同。
为方便起见,您可以创建一个类来为您执行此操作...

class sizeme():
    """ Class to change html fontsize of object's representation"""
    def __init__(self,ob, size, height=100):
        self.ob = ob
        self.size = size
        self.height = height
    def _repr_html_(self):
        repl_tuple = (self.size, self.height, self.ob._repr_html_())
        return u'<span style="font-size:{0}%; line-height:{1}%">{2}</span>'.format(*repl_tuple)

在此处输入图像描述

如果您想将这些应用到您可以使用 css 的所有 pandas 表中。一种(不推荐)方法是将以下内容放入活动笔记本的降价单元格中。

<style>
table.dataframe {
font-size:150%;
}
</style>

这使用 pandas 表的数据框类来识别正确的对象。更好的方法是使用 custom.css 文件。

于 2013-10-24T11:49:48.507 回答