首先说结论:错在matplotlib,降低它的版本就好。
在使用seaborn完成机器学习绘图时,产生了一个很奇怪的报错,我的使用的代码如下:
import seaborn as sns
sns.scatterplot(
x='var1',
y='var2',
hue='var3',
data=dataset,
)
在执行上述代码时,检验了数据集、数据逻辑等无误的情况下,还是会有如下报错:
ValueError: zero-size array to reduction operation minimum which has no identity
尝试了很多网上的办法,还是没有效果,更换了很多seaborn库的版本,也不行,最后偶然发现,注释掉hue这个参数,就可以正常运行了。因此,猜测很可能不是我的数据集或逻辑问题,也不是seaborn包的问题,可能是和其他的绘图库产生了冲突。
sns.scatterplot(
x='var1',
y='var2',
# hue='var3',
data=dataset,
)
果然,当我把matplotlib从3.3.1替换成3.2.2,这段代码就不报错了。可能是matplotlib最新版本有bug,因为seaborn是基于matplotlib建立的。