如何避免输出到 jupyter notebook 中的可滚动框架?

Posted

技术标签:

【中文标题】如何避免输出到 jupyter notebook 中的可滚动框架?【英文标题】:How to avoid output into scrollable frames in jupyter notebook? 【发布时间】:2017-05-29 05:09:13 【问题描述】:

突然,语句的输出开始出现在可滚动的框架内。

我只玩了一个参数

pd.options.display.max_rows = 1000

但经过实验,我将这一行注释掉并重新启动内核。

不过,我的一个输出出现在框架内。

如何避免这种情况?

【问题讨论】:

是否通过pd.reset_option("display.max_rows")帮助将其重置为默认值? 如果我重新启动内核会有什么影响? 不,没有帮助。 pd.options.displays.max_rows 只控制pandas 何时用... 截断输出。当给定单元格的输出很长时,可滚动帧是 Jupyter 的一部分。 【参考方案1】:

要禁用自动滚动,请在笔记本单元格中执行此 javascript,然后再执行其他单元格:

%%javascript
IPython.OutputArea.prototype._should_scroll = function(lines) 
    return false;

还有一个 jupyter 笔记本扩展,autoscroll,您可以使用它来获得更好的 UI。

【讨论】:

有没有办法在禁用此 javascript 后再次启用自动滚动? @Jianyu to ENABLE,你可以把return false改为return true【参考方案2】:

您可以使用鼠标单击输出框架的外部以在滚动之间切换,它对我有用。 更准确地说,您必须单击输出左侧的方块(见图)。

单击将切换滚动模式,双击将完全隐藏输出。

【讨论】:

这也对我有用。它并不明显。单击外部侧边栏可切换该框架的滚动条。 这是一个非常聪明的解决方案!您无需更改笔记本的任何设置!【参考方案3】:

我偶然发现了同样的问题,突然出现了一个用于输出的滚动条。

只需转到 - 单元格 > 所有输出 > 切换滚动(在菜单栏上),输出将返回无滚动状态。

【讨论】:

【参考方案4】:

问题可能是由 jupyter .ipynb 文件中的元数据引起的。在我的情况下,单元格内容看起来像


   "cell_type": "code",
   "execution_count": null,
   "metadata": 
    "scrolled": true
   ,
   "outputs": [],
   "source": [
    "plot_timecourse(time, v_soma)"
   ]
  ,

只需移除滚动部分,即移除元数据:


   "cell_type": "code",
   "execution_count": null,
   "metadata": 
   "outputs": [],
   "source": [
    "plot_timecourse(time, v_soma)"
   ]
  ,

修复了奇怪的滚动框的问题。

【讨论】:

以上是关于如何避免输出到 jupyter notebook 中的可滚动框架?的主要内容,如果未能解决你的问题,请参考以下文章

PyCaret - 如何在 Spyder 中获得与 Jupyter Notebook 相似的输出

如何阻止 Jupyter Notebook 中的 stderr 输出?

如何像 jupyter notebook 的默认单元格输出一样打印

iPython/ Jupyter notebook 只清除一行输出

Jupyter Notebook 如何让一个Cell 可以同时输出多个语句的值?

Jupyter notebook 中 Python 子进程的实时标准输出输出