【问题标题】:manipulate HTML() module font size in ipython notebook在 ipython 笔记本中操作 HTML() 模块字体大小
【发布时间】:2013-11-01 10:36:15
【问题描述】:

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

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

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

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

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

有什么想法吗?

谢谢。

【问题讨论】:

    标签: html pandas ipython-notebook


    【解决方案1】:

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

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

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

    【讨论】:

    • 像这样全局更改数据框的属性时,提供如何重置它的答案很有用。
    【解决方案2】:

    在 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 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多