我想繪製一個簡單的直方圖並行多個數據。
我的數據是一組二維圖像,它們都具有相同的尺寸(在本例中爲256 x 256)。酒吧高度和寬度在幾個數據的直方圖陰謀
我有這樣的方法來繪製數據集:
def plot_data_histograms(data, bins, color, label, file_path):
"""
Plot multiple data histograms in parallel
:param data : a set of data to be plotted
:param bins : the number of bins to be used
:param color : teh color of each data in the set
:param label : the label of each color in the set
:param file_path : the path where the output will be save
"""
plt.figure()
plt.hist(data, bins, normed=1, color=color, label=label, alpha=0.75)
plt.legend(loc='upper right')
plt.savefig(file_path + '.png')
plt.close()
而且我通過我的數據如下:
data = [sobel.flatten(), prewitt.flatten(), roberts.flatten(), scharr.flatten()]
labels = ['Sobel', 'Prewitt', 'Roberts Cross', 'Scharr']
colors = ['green', 'blue', 'yellow', 'red']
plot_data_histograms(data, 5, colors, labels, '../Visualizations/StatisticalMeasures/RMSEHistograms')
而且我得到了這個柱狀圖:
我知道這可能是愚蠢的,但我沒有明白爲什麼我的yticks從0到4.5不等。我知道這是由於規範參數,但即使閱讀此;
如果
True
,返回的元組的第一個元素將是歸一化以形成一個概率密度,即n/(len(x)*dbin)
計數 。在概率密度爲 時,直方圖的積分應爲1
;你可以用一個梯形積分來驗證密度函數的概率 。
我真的不明白它是如何工作的。
而且,一旦設置我的箱等於五直方圖剛好有5個xticks(不含邊界),我不明白爲什麼我有一些thicks中間一些吧,像0.6厚的黃色。由於我的箱數和xticks匹配,我雖然每組四個條應該集中在每個區間內,就像它發生在四個第一個條,完全集中在[0.0,0.2]區間內。
預先感謝您。
謝謝你的詳細的答案。 (: – pceccon