matplotlib - 带有空列表的 violinplot ValueError

matplotlib - violinplot ValueError with empty lists

当我尝试使用 matplotlib 绘制 "violin plot" 时出现以下 ValueError。

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

axes[0].violinplot([[1,2,3],[],[2,3,4]])

我希望在左右两边画两个小提琴图,中间画一些东西来表示无效的项目。

我应该怎么做才能克服这个问题?

您可以检查列表是否为空,如果是,则用 NaN 列表替换它:

from matplotlib import pyplot as plt

vals = [[1, 2, 3], [], [2, 3, 4]]
nans = [float('nan'), float('nan')] # requires at least 2 nans

plt.violinplot([val or nans for val in vals])
plt.show()

这不是一个非常优雅的选择,但它确实有效..