【问题标题】:jupyter nbconvert --to html --no-inp is shrinking the display of centralized tablesjupyter nbconvert --to html --no-inp 正在缩小集中表的显示
【发布时间】:2020-07-18 14:39:07
【问题描述】:

使用以下代码,我可以在我的 jupyter notebook 或转换后的 HTML 代码中显示漂亮的并排集中表

import pandas as pd
import numpy as np
from IPython.display import display, HTML
display(HTML("""
<style>
.output {
    display: flex;
    flex-direction: row;
    justify-content: center;
}
</style>
"""))

df = pd.DataFrame(10000*np.ones((2,2)), columns = ['foo','bar'])
display(df)
display(df)

不过,如果我使用jupyter nbconvert --to html --no-inp myfile.ipynbmyfile.ipynb 转换为myfile.html 而不使用代码,则表格显示时几乎没有水平空间和长滚动条,使它们相当不可用。

我可以做些什么来保持表格在 jupyter notebook 中的显示方式?

【问题讨论】:

  • 我认为您需要输入“为什么它们会像这样收缩以及如何解开它们?”在问题正文中,因为没有书面的明显问题。缩小是指放大吗?
  • 我放大了,因为它们在 html 中非常小。我已经澄清了这个问题。谢谢
  • 我无法在我的 Mac 上重现,当我将窗口的大小更改得足够薄时,我得到的表格在 html 和 Jupyter 中看起来都像这样,但这并不相同。请问您使用的是什么浏览器和操作系统?
  • 我使用的是 ubuntu 20.04 + chrome

标签: python pandas jupyter-notebook nbconvert


【解决方案1】:

我不确定为什么表格认为在有这么多可用空间时它需要占用更少的空间,通过检查 html 我可以看到很多奇怪的 prompt 和其他空容器......无论如何...... .

使表格获得滚动条而不是仅仅占用整个空间的 html 样式是 overflow-x 元素中的 .output_subarea 被某些东西设置为 auto,这似乎不太好用与 flex 上下文中的其他自动生成的元素一起使用。因此,通过将其设置为 unset,我能够显示没有滚动条的完整表格,但不是 100% 确定这会完全符合您的要求,但似乎为我解决了类似的问题。

display(HTML("""
<style>
.output {
    display: flex;
    flex-direction: row;
    justify-content: center;
}
div.output_subarea {
    overflow-x: unset
}
"""))

这很可能意味着大表只会占用所有空间而永远不会出现滚动条,可能有更好的解决方案可以通过更多调查找到,但我不确定通过 Jupyter 的 css 进行搜索是最好的方法,但我想不出任何其他方法。希望这适用于您的情况。 :)

【讨论】:

  • 酷!这适用于我的情况,因为我正在处理小桌子!我没有标记最佳答案,因为正如您所指出的那样,它不适用于大表。我也认为样式命令中的字典之间缺少逗号。
  • 非常合理,我也希望看到更好的答案被标记为已接受。而且我相当确定逗号不应该放在 css 中的字典之间:i.stack.imgur.com/itYLd.png
猜你喜欢
  • 2019-08-27
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-22
  • 2021-06-10
  • 2022-09-30
相关资源
最近更新 更多