如何在浏览器中增加Jupyter / ipython笔记本的单元格宽度?


349

我想在浏览器中增加ipython笔记本的宽度。我有一个高分辨率的屏幕,我想扩展单元格的宽度/大小以利用这个额外的空间。

谢谢!


编辑:5/2017

我现在使用jupyterthemes:https : //github.com/dunovank/jupyter-themes

和此命令:

jt -t oceans16 -f roboto -fs 12 -cellw 100%

可以将宽度设置为100%,并且主题很好。


1
尝试np.set_printoptions(250)
vgoklani

2
谢谢!np.set_printoptions(linewidth=110)为我工作。
Timo

1
@vgoklani对不起,但是'np'吗?那是哪里来的
布兰特

1
@Brandt import numpy as np
vgoklani

3
Jupyter主题的@vgoklani +1
Gursharan Singh

Answers:


613

如果您不想更改默认设置,而只想更改正在使用的当前笔记本的宽度,则可以在单元格中输入以下内容:

from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))

11
真好 看起来它只更改了代码/降价单元格。有没有办法也可以做输出单元?
dreyco676

13
这个解决方案对我有用!我不必安装任何库或软件包即可使用它。
黑色的比尔·安卡拉贡

1
我正在使用Jupyter for Julia。你知道我在这种情况下需要什么吗?
becko

68
这改变了我的生活
YellowPillow

1
@becko根据julia的话说,这是有效的:display("text/html", "<style>.container { width:100% !important; }</style>")
Liso

209

div.cell解决方案实际上不适用于我的IPython,但是幸运的是有人提出了适用于新IPython的可行解决方案:

创建包含内容的文件~/.ipython/profile_default/static/custom/custom.css(iPython)或~/.jupyter/custom/custom.css(Jupyter)

.container { width:100% !important; }

然后重新启动iPython / Jupyter笔记本。请注意,这将影响所有笔记本电脑。


5
这些小片段信息应张贴在某个地方,再次感谢!
vgoklani 2014年

4
这非常有用
ivrin 2014年

13
启动IPython 4.1自定义文件夹的位置已更改为~/.jupyter/custom/
罗曼(Romain)

6
我必须重新启动Jupyter笔记本(4.1.0)才能正常工作。我将上述CSS放入~/.jupyter/custom/custom.css
Paul

6
100%看起来不太好,我将其更改为90%
liang

69

为了使它与jupyter(版本4.0.6)一起使用,我创建了以下内容~/.jupyter/custom/custom.css

/* Make the notebook cells take almost all available width */
.container {
    width: 99% !important;
}   

/* Prevent the edit cell highlight box from getting clipped;
 * important so that it also works when cell is in edit mode*/
div.cell.selected {
    border-left-width: 1px !important;
}

这在Linux中有效!但是我需要在Windows中将其保存在哪里?
crusaderky

6
尝试运行jupyter --config-dir,然后custom\custom.css在命令返回的任何位置创建。
jvd10

@ jvd10这对我不起作用。是否custom.css有除了以上的片段任何其他代码?Jupyter还知道如何使用它?
mLstudent33 '19

至少在linux和osx上,默认情况下jupyter会寻找一个隐藏目录,该目录称为.jupyter配置文件,包括上述自定义内容。以上应该是custom.css的唯一内容。有关更多信息,请参见此处:jupyter.readthedocs.io/en/latest/projects/…–
jvd10

24

是时候使用jupyterlab

最后,笔记本电脑急需升级。默认情况下,它使用窗口的整个宽度,就像其他任何成熟的本机IDE一样。

您要做的就是:

pip install jupyterlab
# if you use conda
conda install -c conda-forge jupyterlab
# to run 
jupyter lab    # instead of jupyter notebook

这是blog.Jupyter.org的屏幕截图


2
JupyterLab仍处于测试阶段,并且与常规笔记本相比有所退缩(根据设计)。一个值得注意的是默认情况下禁止JS,并且需要扩展每个小的JS可视化效果
CiprianTomoiagă18年

1
以及如何更改Jupyter Lab单元的宽度?
multigoodverse

1
我为使jupyter实验室工作而努力了一个小时。最初没有显示任何图形(pyplot / plotly)。文档没有提到您必须为此安装扩展程序。试图安装plotly扩展。发现您需要使用nodejs。同时安装两个,现在我收到“找不到模板:“ index.html””消息。在这一点上,我放弃了,我将继续使用Jupyter Notebook。
Itamar Katz

15

全新安装后,我通常要做的是修改存储所有视觉样式的主css文件。我使用Miniconda,但位置与其他人相似C:\Miniconda3\Lib\site-packages\notebook\static\style\style.min.css

在某些屏幕上,这些分辨率是不同的,并且大于1。为安全起见,我将所有分辨率更改为98%,因此,如果从笔记本电脑上的外接屏幕断开连接,则屏幕宽度仍为98%。

然后,将1140px替换为屏幕宽度的98%

@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}

在此处输入图片说明

编辑后

@media (min-width: 1200px) {
  .container {
    width: 98%;
  }
}

在此处输入图片说明 保存并重新启动笔记本


更新资料

最近不得不在已安装的环境中扩展Jupyter单元,这导致我回到这里提醒自己。

如果您需要在虚拟环境中进行安装,请先安装jupyter。您可以在此子目录中找到css文件

env/lib/python3.6/site-packages/notebook/static/style/stye.min.css

1
这太棒了!它很简单,可以完全满足您的需求。
arbitrarystringofletters

@Gunay /notebook在我的目录中不存在。
mLstudent33 '19

您知道python的版本(激活环境时使用python -V)以及如何创建虚拟环境吗?您是否在Python / Conda上使用venv模块?
Gunay Anach

12

您可以通过从任何单元格调用样式表来设置笔记本的CSS。作为示例,请看Navier Stokes课程12个步骤

特别是,创建一个包含

<style>
    div.cell{
        width:100%;
        margin-left:1%;
        margin-right:auto;
    }
</style>

应该给你一个起点。但是,可能有必要也进行调整,例如div.text_cell_render处理降价和代码单元。

如果是该文件,custom.css则添加包含以下内容的单元格:

from IPython.core.display import HTML
def css_styling():
    styles = open("custom.css", "r").read()
    return HTML(styles)
css_styling()

这将应用所有样式,尤其是更改像元宽度。


这在最新的IPython(版本> 2)中不起作用。检查以下答案:stackoverflow.com/a/24207353/2108548
rominf 2014年

或者,如果您只是想在最近的ipython和jupyter中为当前笔记本更改它,请参阅@jjinking的答案:)
nealmcb 2015年

8

(从2018年开始,我建议您尝试使用JupyterHub / JupyterLab。它使用监视器的整个宽度。如果这不是一种选择,则可能是因为您使用的是基于云的Jupyter即服务提供商,继续阅读)

(时尚被指控窃取用户数据,我已改为使用Stylus插件)

我建议使用时尚浏览器插件。这样,您可以覆盖所有笔记本的css,而无需向笔记本中添加任何代码。我们不喜欢在.ipython / profile_default中更改配置,因为我们正在为整个团队运行共享的Jupyter服务器,并且宽度是用户首选项。

我专门为垂直方向的高分辨率屏幕设计了一种样式,该样式使单元格变宽,并在底部添加了一些空白区域,因此您可以将最后一个单元格放置在屏幕的中央。 https://userstyles.org/styles/131230/jupyter-wide 当然,如果您使用其他布局,或者您不希望最后有多余的空格,则可以根据自己的喜好修改我的CSS。

最后但并非最不重要的一点是,Stylish是包含在工具集中的出色工具,因为您可以根据自己的喜好轻松自定义其他站点/工具(例如Jira,Podio,Slack等)。

@media (min-width: 1140px) {
  .container {
    width: 1130px;
  }
}

.end_space {
  height: 800px;
}

是的,时尚很棒!您能否在底部添加多余空间所需的代码?我总是有一个空单元格,其中有很多空行,以便使最后一个单元格居中-_-。
CiprianTomoiagă18年

2
昨天,时尚是因为窃取用户的浏览历史而
被捕

6

对于Chrome用户,我建议使用Stylebot,它可以让您覆盖任何页面上的所有CSS,还可以搜索和安装其他共享自定义CSS。但是,出于我们的目的,我们不需要任何高级主题。打开Stylebot,更改为Edit CSS。Jupyter捕获了一些击键,因此您将无法在其中键入以下代码。只需复制和粘贴,或者仅编辑即可:

#notebook-container.container {
    width: 90%;
}

根据需要更改宽度,我发现90%的外观比100%的外观好。但这完全取决于您。


对于jupyter笔记本来说,很棒的建议,但还有更多功能!
罗宾诺

@bizi,我是否在代码单元内单击,然后右键单击,选择Stylebot,编辑CSS并复制并粘贴您拥有的内容?如果是这样,它对我不起作用。双方的利润都更高。
mLstudent33 '19

4

这是我最终使用的代码。它将输入和输出单元格向左和向右拉伸。请注意,输入/输出编号指示将消失:

from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
display(HTML("<style>.output_result { max-width:100% !important; }</style>"))
display(HTML("<style>.prompt { display:none !important; }</style>"))

凉!我只会排除最后一行,因为它使细胞执行信息走开(左细胞一部分,显示了excecution秩序和执行时尚未完成的*)
onofricamila

2

我对@ jvd10的解决方案进行了一些修改。“!important”似乎太强了,以至于显示TOC侧栏时容器不能很好地适应。我将其删除并添加了“最小宽度”以限制最小宽度。

这是我的.juyputer / custom / custom.css:

/* Make the notebook cells take almost all available width and limit minimal width to 1110px */
.container {
    width: 99%;
    min-width: 1110px;
}   

/* Prevent the edit cell highlight box from getting clipped;
 * important so that it also works when cell is in edit mode*/
div.cell.selected {
    border-left-width: 1px;
}

0

我尝试了一切,但对我没有用,最终我将数据框显示为HTML,如下所示

from IPython.display import HTML    
HTML (pd.to_html())

-1

对于Firefox / Chrome用户,一种实现100%宽度的好方法是使用自定义TamperMonkey脚本。

好处是

  1. 在浏览器中配置一次,无需修改服务器配置。
  2. 与多个jupyter服务器一起使用。
  3. TamperMonkey受信任,维护且稳定。
  4. 通过javascript可以进行许多其他自定义。

该脚本对我有用https://gist.githubusercontent.com/mrk-andreev/2a9c2538fad0b687c27e192d5948834f/raw/6aa1148573dc20a22fca126e56e3b03f4abf281b/jpn_tmonkey.js

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.