调整 ipython 笔记本输出窗口的大小

Posted

技术标签:

【中文标题】调整 ipython 笔记本输出窗口的大小【英文标题】:resize ipython notebook output window 【发布时间】:2013-09-17 04:59:38 【问题描述】:

默认情况下,ipython notebook 的输出仅限于底部的一个小子窗口。这使得我们在输出很大时强制使用输出窗口附带的单独滚动条。

任何配置选项使其不受大小限制,而是运行与实际输出一样高?或者选择在创建后调整它的大小?

【问题讨论】:

【参考方案1】:

请参阅the jupyter autoscroll extension (part of jupyter_contrib_nbextensions),它允许您在下拉菜单中选择输出何时开始滚动(您可以将其设置为从不滚动)。但所使用的 API 不受官方支持,因此可能随时中断。

【讨论】:

谢谢马特!如何使用它? 在你的 ipython 配置文件的正确位置克隆 repo。 (参见自述文件)将 custom.example.js 复制到 custom.js 并在其中取消注释 require('custom/autoscroll.js') 。重启 IPython。【参考方案2】:

附录#2:此评论: https://github.com/ipython/ipython/issues/2172#issuecomment-53708976 指示如何增加输出单元格的最大大小。在 notebook 中运行以下代码:

%%javascript
IPython.OutputArea.auto_scroll_threshold = 9999;

【讨论】:

似乎不起作用。在控制台中我得到:accessing OutputArea is deprecated. Use require("notebook/js/outputarea").OutputArea。把它放在控制台中表明它是一个函数。 对我不起作用,可能是因为我的输出是 Javascript 生成的。 不起作用。执行单元格后的输出仍在可滚动区域中。就我而言,突然间,ipython notebook 切换到某些输出的可滚动窗格,而它们以前是“正常”的。非常神秘……【参考方案3】:

这在 Chrome 中对我有用。在单独的单元格中运行它。选择您希望在不滚动的情况下显示的最大高度。

%%html
<style>
.output_wrapper, .output 
    height:auto !important;
    max-height:1000px;  /* your desired max-height here */

.output_scroll 
    box-shadow:none !important;
    webkit-box-shadow:none !important;

</style>

如果内容超过最大高度,您仍然会看到滚动条。不过,不会有影子盒。如果真的根本不想滚动,只需进一步增加 max-height 即可。

【讨论】:

太棒了。这段代码成功了。奇怪的是,这不是 ipython/jupyter notebook 的记录设置。 我更喜欢这个而不是添加扩展。我也使用这种方法来格式化我的其余输出。谢谢,@broccoli2000! 不知道你能做到这一点......有点老套,但一般来说,Jupyter 环境似乎也是如此。谢谢! 这对我来说是正确的答案,谢谢。【参考方案4】:

您可以在笔记本主菜单中切换滚动窗口

单元格 -> 当前输出 -> 切换滚动

【讨论】:

或(单元格 -> 所有输出 -> 切换滚动) 有什么方法可以在每个单元格的基础上做到这一点?例如,具有大量 json 内容的单元格想要滚动,但具有图像输出的单元格不想滚动。 很酷,如果它正在滚动,只需单击输出的左侧即可将其展开并使其不滚动。 :-) 这应该是公认的答案。它比公认的答案更流行,而且它的作用就像一个魅力。【参考方案5】:

我只是将光标放在输出旁边的灰色框中并单击,然后显示所有输出。

【讨论】:

哇,这是一个如此简单的解决方案。为什么需要其他已发布的“解决方案”? 我认为这应该是正确的答案。 很简单的一个,我没注意到。谢谢 什么灰盒?我找不到它 @ZhanwenChen,包含“In [x]:”和“Out [x]:”标题的灰色框【参考方案6】:

对于 plot.ly iplot,我必须添加以下内容才能看到任何变化(它改变了所有输出)

%%html
<style>
.python-iframe > iframe 
  height:1000px !important;

</style>

【讨论】:

【参考方案7】:

要调整可滚动输出的高度,我执行以下操作(您可以更改 44em):

from IPython.core.display import display, HTML
display(HTML("<style>div.output_scroll  height: 44em; </style>"))

【讨论】:

这太棒了,仍然适用于 Jupyter 1.0+ 这是最好的答案,没有其他工作 感谢您分享这个!!【参考方案8】:

JupyterLab 中,您可以右键单击并选择: 为输出创建新视图

【讨论】:

【参考方案9】:

我尝试了上述所有选项,但都没有奏效。这就是我摆脱滚动单元格的方式。 右键单击单元格,然后单击“禁用输出滚动” 我知道这不会调整滚动单元格的大小,但它确实使我的代码更清晰,因为滚动单元格非常小(至少对我而言)。

【讨论】:

【参考方案10】:

这对我有用:

%%html
<style>
.output_wrapper .output 
  overflow-y: visible;
  height: fit-content;

</style>

这可能取决于 Jupyter 的版本。

【讨论】:

以上是关于调整 ipython 笔记本输出窗口的大小的主要内容,如果未能解决你的问题,请参考以下文章

tkinter笔记002-防止窗口大小调整

JavaScript:调整笔记本电脑的浏览器窗口大小(“移动” - “桌面” - “移动”)不会重启菜单状态

Linux(Deepin)的eclipse窗口字体大小怎样调整

如何在 IPython 笔记本中打开交互式 matplotlib 窗口?

Qt+ECharts开发笔记:Qt窗口动态调整大小,使ECharts跟随Qt窗口大小变换而变换大小

代码中的ipython笔记本清除单元格输出