有什么方法可以使 matplotlib 的 Nbagg 后端更快,或者 Inline 后端的分辨率更高?

Any way to make matplotlib's Nbagg backend faster, or Inline backend higher resolution?

我喜欢使用 Jupyter notebooks,但似乎无法找到可视化绘图的正确后端:%matplotlib inline 生成分辨率非常低的位图图像,但速度很快,%matplotlib nbagg%matplotlib notebook 速度慢,但高分辨率的矢量图形。

后者会不会因为要设置交互界面所以比较慢?我通常希望我的所有图形都可以通过单击按钮来重现,所以我不想手动操作它们——也许我可以禁用每个图的交互?

或者可以调整前者以显示更高分辨率的图形,或者加载矢量图而不是位图图像?

正如经常发生的那样,我在发布问题后立即找到了答案。只需使用

%config InlineBackend.figure_format = 'retina'
%matplotlib inline

对于高分辨率位图,或对于矢量图形,

%config InlineBackend.figure_format = 'svg'
%matplotlib inline

这就是诀窍!

还想出了即使 Artist 出门也能使后端保留打印图形边界框的方法——只需使用

%config InlineBackend.print_figure_kwargs = {}

因为默认情况下,它的值为{'bbox_inches': 'tight'}。找不到关于此的任何文档,但如果您输入 %config InlineBackend.

jupyter 会显示不同的选项