如何在 Jupyter notebook 单元格中制作大图,输出到 html 时可滚动

how to make a large figure in a Jupyter notebook cell, scrollable when it is output to html

如您所知,当您在 Jupyter Notebook 单元格中打印较大的 table 时,无论 table 是否打印在笔记本中,当它太大时,它会自动水平或垂直滚动环境或保存到 html 文件。

但是对于图,当它太大时,它会像大图一样可滚动 table 但只有在笔记本环境中打印时才会如此。保存到 html 文件时,整个图形适合较小的区域,因此很难读取轴标签。

我该怎么做?

例如,在 Notebook 中,如果您单击图形的左侧和底部边框,那么您将在右侧和底部看到滚动条。

但是输出到html文件时整个图都塞进了"canvas",如下图:

您可以通过三个选项来修改笔记本的样式。

在代码单元格中注入 CSS

如果您只想修改单个笔记本的行为,可以在代码中注入一些CSS来自定义您的样式。

from IPython.core.display import HTML
style = """
<style>
div.output_area {
    overflow-y: scroll;
}
div.output_area img {
    max-width: unset;
}
</style>
"""
HTML(style) 

要禁用您的修改,您只需清除该单元格的输出。

自定义样式表

如果您想在全局级别修改您的样式,您可以将自定义样式放入 jupyter 配置目录中的 custom/custom.css 文件中(该文件可能尚不存在)。 要确定配置文件夹在安装中的位置,运行 这个

import jupyter_core;jupyter_core.paths.jupyter_config_dir()

这不能即时切换。

自定义 nbconvert 模板

最后,如果您只想设置 HTML 导出的输出样式,请查看自定义模板部分中的 nbconvert documentation。这种方法可能是设置导出样式的最强大选项,但它只影响导出版本,而不影响实时笔记本。