【发布时间】:2016-02-22 16:17:07
【问题描述】:
当我尝试使用 matplotlib 绘制“小提琴图”时,出现以下 ValueError。
ValueError: 零大小数组到没有标识的归约操作最小值
axes[0].violinplot([[1,2,3],[],[2,3,4]])
我希望左右两边画两个小提琴图,中间画一些东西来代表无效项。
我应该怎么做才能克服这个问题?
【问题讨论】:
标签: python matplotlib violin-plot
当我尝试使用 matplotlib 绘制“小提琴图”时,出现以下 ValueError。
ValueError: 零大小数组到没有标识的归约操作最小值
axes[0].violinplot([[1,2,3],[],[2,3,4]])
我希望左右两边画两个小提琴图,中间画一些东西来代表无效项。
我应该怎么做才能克服这个问题?
【问题讨论】:
标签: python matplotlib violin-plot
您可以检查列表是否为空,如果是,则将其替换为 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()
这不是一个真正优雅的选择,但它确实有效..
【讨论】:
[ val if val.any() else nans for val in vals ] 让我很开心。