一段时间后隐藏在 jupyterlab 中的 svg 图形
svg figures hidden in jupyterlab after some time
我最近发现我可以在我的 jupyterlab 笔记本中默认使用 SVG 制作我所有的 matplotlib 图
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_formats = ['svg']
但是,如果我刷新页面,数字就会消失,留下
<Figure size 864x576 with 1 Axes>
如果不更改内联后端,则不会出现此效果。刷新后我的阴谋人物也仍然出现。我宁愿不必重新 运行 单元格。查看实际的 ipynb 文件,SVG 就在实际文件中。如何在不重新 运行 单元格的情况下显示此图?
该行为看起来符合 security model of Jupyter。
- Untrusted HTML is always sanitized
- Untrusted Javascript is never executed
- HTML and Javascript in Markdown cells are never trusted
- Outputs generated by the user are trusted
- Any other HTML or Javascript (in Markdown cells, output generated by others) is never trusted
- The central question of trust is “Did the current user do this?”
因为 SVG 可以有 <script>
个标签,所以有一个攻击面。因此,您有两种显示 SVG 的选项:
- Re-运行 生成 SVG 的单元格(上面最后一点)。
- Explicitly trust 笔记本,
jupyter trust /path/to/notebook.ipynb
.
备注:
- Plotly 在单元格的输出中保存
image/png
版本。它在笔记本加载时显示。但是加载的(不是重新运行的)单元格也具有交互性。不确定该豁免如何运作。
- 附带说明一下,当前 JupyterLab 的行为因不同形式的 SVG 显示而异(参见 issue#10464),但这不是这里的问题。
我最近发现我可以在我的 jupyterlab 笔记本中默认使用 SVG 制作我所有的 matplotlib 图
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_formats = ['svg']
但是,如果我刷新页面,数字就会消失,留下
<Figure size 864x576 with 1 Axes>
如果不更改内联后端,则不会出现此效果。刷新后我的阴谋人物也仍然出现。我宁愿不必重新 运行 单元格。查看实际的 ipynb 文件,SVG 就在实际文件中。如何在不重新 运行 单元格的情况下显示此图?
该行为看起来符合 security model of Jupyter。
- Untrusted HTML is always sanitized
- Untrusted Javascript is never executed
- HTML and Javascript in Markdown cells are never trusted
- Outputs generated by the user are trusted
- Any other HTML or Javascript (in Markdown cells, output generated by others) is never trusted
- The central question of trust is “Did the current user do this?”
因为 SVG 可以有 <script>
个标签,所以有一个攻击面。因此,您有两种显示 SVG 的选项:
- Re-运行 生成 SVG 的单元格(上面最后一点)。
- Explicitly trust 笔记本,
jupyter trust /path/to/notebook.ipynb
.
备注:
- Plotly 在单元格的输出中保存
image/png
版本。它在笔记本加载时显示。但是加载的(不是重新运行的)单元格也具有交互性。不确定该豁免如何运作。 - 附带说明一下,当前 JupyterLab 的行为因不同形式的 SVG 显示而异(参见 issue#10464),但这不是这里的问题。