散布図のカラーバーを表示しようとしていますが、エラーが発生し続けます。
TypeError:最初にマップ可能にset_arrayする必要があります
これは私がプロットするためにやっていることです:
_# Just plotting the values of data that are nonzero
x_data = numpy.nonzero(data)[0] # x coordinates
y_data = numpy.nonzero(data)[1] # y coordinates
# Mapping the values to RGBA colors
data = plt.cm.jet(data[x_data, y_data])
pts = plt.scatter(x_data, y_data, marker='s', color=data)
plt.colorbar(pts)
_
行plt.colorbar(pts)
にコメントすると、プロットは正しく取得されましたが、カラーバーもプロットしたいと思います。
前もって感謝します。
特定のRGB値を渡しているため、元のデータとの関係がわからないため、matplotlibはカラーマップを作成できません。
値をRGBカラーにマッピングする代わりに、scatter
が処理します。
の代わりに:
# Mapping the values to RGBA colors
data = plt.cm.jet(data[x_data, y_data])
pts = plt.scatter(x_data, y_data, marker='s', color=data)
行う:
pts = plt.scatter(x_data, y_data, marker='s', c=data[x_data, y_data])
(plt.cm.jet
に元々渡していたものをc
に渡すだけです。)
その後、通常どおりカラーマップを作成できます。特定のエラーは、色がset_array
(データ値の配列のRGBへのマッピングを処理する)を介して設定されるのではなく、手動で設定されていることを示しています。