如何在 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。这种方法可能是设置导出样式的最强大选项,但它只影响导出版本,而不影响实时笔记本。
如您所知,当您在 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。这种方法可能是设置导出样式的最强大选项,但它只影响导出版本,而不影响实时笔记本。