我有數據在數組x,y和w其中'x'和'y'表示位置和'w'是權重1或0表示成功或失敗。我試圖創建一個2d直方圖,其中根據該bin中成功的百分比(即bin中的成功次數除以bin中的總點數)對直方圖的每個bin進行着色。我已經玩了很多numpy.histogram2d,可以得到密度圖,但這與我所瞄準的成功計劃的百分比不一樣。請注意,在numpy.histogram2d參數中normed = True並不能緩解這個問題。 (爲了說明不同之處,如果箱內的成功次數較多,密度圖將顯示較大的「顏色值」,而不管同一箱中有多少故障,我想得到百分比的成功,所以在同一個箱子中的大量失敗會給一個較小的'顏色值',對於較差的術語我很抱歉)。Python 2d-直方圖成功率每個bin
非常感謝任何能夠幫助的人!當前代碼
的例子,沒有做什麼我的目標:
import matplotlib.pyplot as plt
import numpy as np
plt.figure(1)
H, xedges, yedges = np.histogram2d(x, y, bins=50, weights=w, normed=True)
extent = [yedges[0], yedges[-1], xedges[-1], xedges[0]]
plt.imshow(H, extent=extent,interpolation='nearest')
plt.colorbar()
plt.show()
神奇,像魅力一樣工作。非常感謝你!我實際上使用了上面寫的下劃線,你介意解釋這些做什麼(我的假設是它允許計算H2而不用重新計算xedges和yedges)。 – 2013-04-27 14:25:51
@ Dr.Jones它沒有做任何特別的事情...... np.histogram2d的輸出是一個包含三個元素的元組;然而,開箱時經常使用_表示你不關心那個元素。 xedges和yedges不會根據權重而改變,因此再次保留它們並不重要。要真正看到這個工作,試試'lst = [1,2,3]; a,b,c = 1st;打印b;打印c; d,b,b = 1st;打印b;'(當你不能做多行時很難顯示),但基本上發生的是,你分配給b兩次,只有最後一次分配。 – 2013-04-27 18:39:18