小能豆

Seaborn pairplot() error, OptionError: "No such keys(s): 'mode.use_inf_as_null'", any idea?

py

当我尝试应用 searbor pairplot 时出现错误。我的完整脚本很简单,复制如下:

import seaborn as sns
import pandas as pd
import numpy as np

# Creating a sample DataFrame
data = {
    'A': np.random.randn(100),
    'B': np.random.randn(100),
    'C': np.random.randn(100),
    'D': np.random.randn(100)
}
df = pd.DataFrame(data)

# Create a pair plot
sns.pairplot(df)

但是我抛出了这个错误:

---------------------------------------------------------------------------
OptionError                               Traceback (most recent call last)
Cell In[26], line 15
     12 df = pd.DataFrame(data)
     14 # Create a pair plot
---> 15 sns.pairplot(df)

File ~/miniforge3/envs/marketing/lib/python3.9/site-packages/seaborn/_decorators.py:46, in _deprecate_positional_args..inner_f(*args, **kwargs)
     36     warnings.warn(
     37         "Pass the following variable{} as {}keyword arg{}: {}. "
     38         "From version 0.12, the only valid positional argument "
   (...)
     43         FutureWarning
     44     )
     45 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 46 return f(**kwargs)

File ~/miniforge3/envs/marketing/lib/python3.9/site-packages/seaborn/axisgrid.py:2126, in pairplot(data, hue, hue_order, palette, vars, x_vars, y_vars, kind, diag_kind, markers, height, aspect, corner, dropna, plot_kws, diag_kws, grid_kws, size)
   2124 diag_kws.setdefault("legend", False)
   2125 if diag_kind == "hist":
-> 2126     grid.map_diag(histplot, **diag_kws)
   2127 elif diag_kind == "kde":
   2128     diag_kws.setdefault("fill", True)

File ~/miniforge3/envs/marketing/lib/python3.9/site-packages/seaborn/axisgrid.py:1478, in PairGrid.map_diag(self, func, **kwargs)
...
--> 121     raise OptionError(f"No such keys(s): {repr(pat)}")
    122 if len(keys) > 1:
    123     raise OptionError("Pattern matched multiple keys")

OptionError: "No such keys(s): 'mode.use_inf_as_null'"

我尝试删除 Seaborn,然后使用 conda 命令重新安装,但错误是一样的。

以前有人遇到过这个错误吗?


阅读 992

收藏
2023-06-01

共1个答案

小能豆

是的,此错误是由于seabornmatplotlib版本之间的兼容性问题引起的。解决方法是升级matplotlib库的版本。

你可以使用以下命令升级matplotlib

pip install --upgrade matplotlib

或者如果你使用的是conda包管理器,可以使用以下命令升级matplotlib

conda update matplotlib

升级后,再次运行你的脚本,应该就不会再出现该错误了。

此外,还有一种可能的解决方法是显式设置mode.use_inf_as_null选项。你可以在脚本的开头添加以下代码:

import seaborn as sns
import pandas as pd
import numpy as np

# Set the option explicitly
sns.set_theme(mode='ticks')

# Rest of your code...

这将显式设置mode.use_inf_as_null选项,解决该错误。

希望这可以解决你遇到的问题!如果还有其他问题,请随时提问。

2023-06-01