0から(を含む)22までの2次元配列を持っています。 通常のマットプロットでは、 。 私は、カラーマップだけで、正規化してみましたが、色15と16は一貫していません。離散的な色を持つ2次元配列は、1つの中間値では機能しません
正規化なしでは、15の色は16です(もちろん、ホバーの値はミスアライメントされた浮動小数です)。 正規化では、16が15の色を持つ以外はすべて問題ありません。
同じことを尋ねる他にも複数の質問がありましたが、この問題が発生しました。
import matplotlib.pyplot as plt
import matplotlib.colors as colors
example_data = [list(range(23))]*4
cmaplist = [
"#b3b3b3", "#333333", "#8a745c", "#8f7456",
"#847362", "#1a53ff", "#336600", "#aa8a31",
"#b3b3b3", "#aa8a31", "#aa8a31", "#004d00",
"#aa8a31", "#5c330a", "#999999", "#66d9ff",
"#e481a2", "#e996b1", "#e481a2", "#e06c92",
"#e87da1", "#fff11c", "#ff6600"
]
norm = colors.BoundaryNorm(range(len(cmaplist)+1), len(cmaplist))
cmap = colors.LinearSegmentedColormap.from_list('mycmap', cmaplist, len(cmaplist))
plt.matshow(example_data, fignum=False, cmap=cmap, norm=norm)
plt.show()
私はmatplotlibなどではあまりよくありません。だから、これは本当に明白な間違いかもしれません。私はちょうど単純な値のデータの検索のようにこれを扱っていますが、それは実際にはどのように機能するのかわかりませんが、限られた知識でより良いアプローチを考えることはできません。
@BluBb_mADe簡単な質問:これはpython 2.7とmatplotlib 2.1で行いました。どのバージョンを使用していますか? MCVEに関する – ImportanceOfBeingErnest
。色の数や色を指定した方法がこの動作の原因であったかどうかはわかりませんでしたので、すべてを含めました。 ps。 python 2.7.14 matplotlib 2.1.0、numpy 1.13.3 win10のpipからすべて。 –
私は[これに関する問題](https://github.com/matplotlib/matplotlib/issues/9937)を作成しました。この動作はmatplotlib 2.0.2には存在しませんでした。一般的には、ビンエッジの場合でも – ImportanceOfBeingErnest