matplotlib で「バイオリン プロット」をプロットしようとすると、次の ValueError が発生します。
ValueError: ID を持たないゼロ サイズの配列からリダクション操作の最小値
axes[0].violinplot([[1,2,3],[],[2,3,4]])
左側と右側に 2 つのヴァイオリン プロットをプロットし、無効なアイテムを表すために中央に何かをプロットすることを望みます。
これを克服するにはどうすればいいですか?
matplotlib で「バイオリン プロット」をプロットしようとすると、次の ValueError が発生します。
ValueError: ID を持たないゼロ サイズの配列からリダクション操作の最小値
axes[0].violinplot([[1,2,3],[],[2,3,4]])
左側と右側に 2 つのヴァイオリン プロットをプロットし、無効なアイテムを表すために中央に何かをプロットすることを望みます。
これを克服するにはどうすればいいですか?
リストが空かどうかを確認し、空である場合は 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()
それは本当にエレガントなオプションではありませんが、うまくいきます..