使用CSS自定义Juypter实验室控制台中Pandas数据框的字体。

问题描述 投票:0回答:1

我试图在我的Jupyter Lab Console中添加CSS规则,以自定义Jupyter Lab的外观。只是 pandas数据框,我已经成功地在控制台中交互式地完成了这个工作。 我想要的是,当Jupyter Lab控制台启动时,将我的CSS规则应用到它,这样我就不必交互式地做这件事了。 我已经成功地将这些自定义样式添加到pandas数据框本身(df.style.apply()),但我不想把它添加到我交互式创建的每个数据框中。

Pandas数据框被归类为.dataframe。 我创建了一个名为 "00-first.py "的Jupyter Lab启动文件,并把它放在.ipythonprofile_defaultstartup目录下。 文件的内容是。

    from IPython.display import HTML, display
    import pandas as pd
    import numpy as np
    style = '''<style>
            .dataframe td {font-family:"Liberation Mono";} 
            .dataframe th, .dataframe tr, .dataframe td {padding-top:0.1em; padding-bottom:0.1em;} 
            </style>'''
    display(HTML(style))
    display(HTML("Environment personalization complete."))

当我启动控制台时,我可以确认00 -first.py文件已经被执行,因为dir()显示了 "style "变量,pd和np。 消息字符串没有打印出来,样式也没有出现在网页的CSS中。

如果我创建一个数据框,就会用默认的css字体显示。 为了让样式发生,我手动运行了以下命令 display(HTML(style)) 然后所有的数据框现在都有了新的css样式。

我正在尝试删除必须输入 display(HTML(style)) 并希望启动脚本 "00-frist.py "来处理这个问题,我在Linux Manjaro Linux 5.6.7-1-MANJARO x86_64 GNULinux上使用Jupyter Lab 1.1.4。

我在Linux Manjaro Linux 5.6.7-1-MANJARO x86_64 GNULinux上使用Jupyter Lab 1.1.4,使用Firefox 75.0。

我怎么做,或者有什么更好的方法吗?

之前:没有样式

enter image description here

之后:带造型

enter image description here

css pandas css-selectors jupyter
1个回答
0
投票

我尝试了多个咒语 NotebookApp.extra_static_pathsList 正如 @jayveesea 所建议的那样,但这个方法无法奏效。 我找到的解决办法很简单,就是编辑基础CSS文件,在那里添加我的CSS选择器。

  1. 用以下方法找到你的Jypyter应用程序目录 jupyter lab path 从命令提示符中输入。 这将是类似于 家里的红毛丹康达3.
  2. 找到你使用的主题的index.css文件。 这个文件将位于你的Jupyter应用程序目录下,你正在使用的主题目录下。 例如,如果你的Jupyter应用程序目录是''。家里的红毛丹康达3'而你使用的主题是'主题灯扩展',那么索引文件将位于 homefredanaconda3sharejupyterlabthemes@jupyterlabtheme-light-extensionindex.css
  3. 将你的CSS选择器添加到文件中。
    /* pandas dataframe customizations */
    .dataframe td {font-family:"Liberation Mono";} 
    .dataframe th, .dataframe tr, .dataframe td {padding-top:0.1em; padding-bottom:0.1em;} 

重新启动Jupyter控制台,你应该会看到所有的pandas数据框都按照这些规则格式化了。

这种方法的一个缺点是,你必须将你的CSS规则添加到任何你想要支持这些规则的扩展中,但这对我来说是有效的,因为我不切换扩展。


0
投票

请看一下 此处 用于使用jupyter的配置文件。特别是 NotebookApp.extra_static_paths 選項:NotebookApp.extra_static_pathsList

NotebookApp.extra_static_pathsList 默认。[]

额外的路径来搜索服务静态文件。

这样就可以在笔记本服务器的机器上添加javascriptcss,或者覆盖IPython中的个别文件。

UPDATE:看来上面的方式 伤筋动骨 并可能被放弃。 另一种解决方案是使用以下路径来存储自定义CSS。.jupyter\custom 不需要对配置文件进行任何更新。

所以在这种情况下 .jupyter\custom\custom.css 将包含:

.dataframe td {font-family:"Liberation Mono";} 
.dataframe th, .dataframe tr, .dataframe td {padding-top:0.1em; padding-bottom:0.1em;}
© www.soinside.com 2019 - 2024. All rights reserved.