解决空数组导致的ValueError

37 投票
1 回答
166133 浏览
提问于 2025-04-18 01:39

这个讨论中,我试图解决一个关于y轴绘图范围的问题,因为使用twiny()后我的图表出现了混乱。

我认为这个:

ax.set_ylim([y.min()-0.05, y.max()+0.05])

是个不错的解决方案。对于连续的数据集来说,确实是这样。不过,正如我在那个讨论中提到的,我的数据比较杂乱,有时还会有缺失的部分。因此,有些绘制的范围可能没有数据。在这种情况下,使用.min()就会出现错误:

ValueError: zero-size array to reduction operation minimum which has no identity

因为数组是空的。那我该怎么做才能让代码不去管y轴的限制呢?(希望空数组不会引发其他问题)

1 个回答

56

只需捕获这个异常,然后忽略它就可以了:

try:
    ax.set_ylim([y.min()-0.05, y.max()+0.05])
except ValueError:  #raised if `y` is empty.
    pass

撰写回答