scipy.stats.binned_statistic_2d
에서 얻을 수 있듯이 binned 통계를 플롯해야합니다. 기본적으로 가장자리 값과 bin 데이터가 있음을 의미합니다. 이것은 또한 은 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 번째 값의 배율이 제외되므로 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를 전달할 수 있다는 것을 깨닫지 못하고있었습니다. –