有什么方法可以使 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
会显示不同的选项
我喜欢使用 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
会显示不同的选项