解决空数组导致的ValueError
在这个讨论中,我试图解决一个关于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