scipy.stats.binned_statistic_2d
から得られるように、ビニングされた統計値をプロットする必要があります。基本的には、エッジ値とビン内のデータがあることを意味します。これはまたはplt.hist2d
を(私の知る限り)使用できないことを意味します。ここで私はプロットする必要があるかもしれませんデータの並べ替えを生成するためのコードスニペットです:pcolormeshで2Dヒストグラムデータをプロットする
import numpy as np
x_edges = np.arange(6)
y_edges = np.arange(6)
bin_values = np.random.randn(5, 5)
一つは、私は、このためのpcolormesh
を使用することができることを想像するだろうが、問題はpcolormesh
がビンのエッジ値を許容しないということです。以下は、ビン1〜4の値だけをプロットします。pcolormeshは4.0の値が何らかの値であることを「知っている」ため、5番目の値は除外されます。ゼロ。
import matplotlib.pyplot as plt
X, Y = np.broadcast_arrays(x_edges[:5, None], y_edges[None, :5])
plt.figure()
plt.pcolormesh(X, Y, bin_values)
plt.show()
私は最後の値に等しい値の追加セットを追加することによって、醜いハックでこの問題を回避することができます:
import matplotlib.pyplot as plt
X, Y = np.broadcast_arrays(x_edges[:, None], y_edges[None, :])
dummy_bin_values = np.zeros([6, 6])
dummy_bin_values[:5, :5] = bin_values
dummy_bin_values[5, :] = dummy_bin_values[4, :]
dummy_bin_values[:, 5] = dummy_bin_values[:, 4]
plt.figure()
plt.pcolormesh(X, Y, dummy_bin_values)
plt.show()
しかし、この
は醜いハックです。ビンエッジ値を使用して2Dヒストグラムデータをプロットする方法がありますか? 「いいえ」は正解かもしれませんが、そうであればそれを説得します。
あなたはそうです。私の誤解の核心は、Zよりも長い長さの次元を持つpcolormeshにXとYを渡すことができないことを認識していなかったことです。 –