在ipython notebook中操纵HTML()模块的字体大小

时间:2013-10-23 08:37:44

标签: html pandas ipython-notebook

有没有人知道如何在ipython notebook中操纵HTML函数调用的字体大小?

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

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

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

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

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:6)

现在可以使用style的{​​{1}}方法添加CSS样式,例如

DataFrame

请注意,目前仅适用于值,您无法通过这种方式设置标题或索引标签的样式。 (此功能将在未来添加。)

答案 1 :(得分:2)

在IPython中,对象可以有不同的表示形式,如html,latex,png,text等。相应的对象方法称为_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)

enter image description here

您想将这些应用于您可以使用css的所有pandas表。将(不推荐)方式放入活动笔记本的markdown单元格中。

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

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