直方图seaborn→matplotlib→pandas报错ValueError: Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported
问题描述:画用seaborn画直方图时报错。尝试更新3个库、在传入sns.hist参数时将数据转换成numpy array后,仍然报同样错误
报错内容:
Traceback (most recent call last):
File "file.py", line 116, in <module>
sns.histplot(fp_slope_values, bins=20, kde=True, stat='percent')
File "\lib\site-packages\seaborn\distributions.py", line 1416, in histplot
p.plot_univariate_histogram(
File "\lib\site-packages\seaborn\distributions.py", line 651, in plot_univariate_histogram
line, = ax.plot(
File "\lib\site-packages\matplotlib\axes\_axes.py", line 1632, in plot
lines = [*self._get_lines(*args, data=data, **kwargs)]
File "\lib\site-packages\matplotlib\axes\_base.py", line 312, in __call__
yield from self._plot_args(this, kwargs)
File "\lib\site-packages\matplotlib\axes\_base.py", line 487, in _plot_args
x = _check_1d(xy[0])
File "\lib\site-packages\matplotlib\cbook\__init__.py", line 1328, in _check_1d
ndim = np.array(x[:, None].ndim)
File "\lib\site-packages\pandas\core\indexes\base.py", line 5419, in __getitem__
disallow_ndim_indexing(result)
File "\lib\site-packages\pandas\core\indexers\utils.py", line 341, in disallow_ndim_indexing
raise ValueError(
ValueError: Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.
分析:是从matplotlib→到pandas的过程中有错
解决:改matplotlib库文件的代码,直接在中间传入参数的时候就将数据变换成numpy array格式
- 改代码的文件路径:
\lib\site-packages\matplotlib\cbook\__init__.py
- 在~第1327行,
ndim = x[:, None].ndim前,添加
x = np.array(x)
解决
浙公网安备 33010602011771号