Runtimeerror: cannot get window extent w/o renderer with seaborn

Runtimeerror: cannot get window extent w/o renderer with seaborn

所以我正在尝试获取一些东西 运行 seaborn(特别是这个 example

然而,当我 运行 正常 ipython 时,我得到标题中列出的 运行 时间错误。这似乎是一个后端问题,但我在使用任何其他绘图实用程序时都没有遇到过这个问题。更奇怪的是,如果我在 ipython notebook 中 运行 我不再遇到那个错误。我现在当然可以在笔记本中工作并避免出现问题,但我担心这种情况会发生在终端中。

这似乎是 MacOSX 后端的问题。它在 matplotlib 的问题跟踪器中被跟踪,但修复显然需要大量重写并且尚未完成。 (我猜和这个有关issue)。

同时切换绘图后端是一种解决方法。

这可以做到,例如通过命令行启动 ipython 和

ipython --matplotlib <your-favorite-backend>

选择一个无效的后端(ipython --matplotlib ??)将打印所有可用的后端。

[TerminalIPythonApp] CRITICAL | Bad config encountered during initialization:
[TerminalIPythonApp] CRITICAL | The 'matplotlib' trait of a TerminalIPythonApp instance must be any of ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx'] or None, but a value of '??' <class 'str'> was specified.