2

matplotlib で「バイオリン プロット」をプロットしようとすると、次の ValueError が発生します。

ValueError: ID を持たないゼロ サイズの配列からリダクション操作の最小値

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

左側と右側に 2 つのヴァイオリン プロットをプロットし、無効なアイテムを表すために中央に何かをプロットすることを望みます。

これを克服するにはどうすればいいですか?

4

1 に答える 1

3

リストが空かどうかを確認し、空である場合は 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()

それは本当にエレガントなオプションではありませんが、うまくいきます..

于 2015-11-20T08:53:24.147 に答える