2017-03-09 66 views
0

所以我必須將圖像在數據集中的分佈繪製爲條形圖。我已經看過幾種做法,但無濟於事。使用matplotlib和numpy將圖像和標籤繪製爲條形圖

我有兩個numpy的數組:

X_train - 形狀(20000,32,32,3) y_train - 形狀(20000)

標籤 - 標籤詞典索引的標記字符串。尺寸50

所以X_train包含圖像和y_train包含對應的標籤索引

我需要繪製X_train的條形圖對50級的標籤。顯示每個標籤的圖像數量分佈。

我應該先用y_train中的相應索引對X_train數組中的圖像進行分組嗎?這如何適應matplotlib.bar API調用?

或者我應該使用numpy直方圖API。

任何幫助,非常感謝。

回答

0

一種方法是使用帶有一些附加參數的histogram。你可以使用像,

In [55]: y 
Out[55]: array([0, 0, 1, 2, 1]) 

In [54]: plt.hist(y, align='mid', range=(np.min(y), np.max(y)+1), bins=50) 
In [55]: plt.xlabel("labels") 
In [56]: plt.ylabel("image counts") 
In [57]: plt.show() 

enter image description here

這裏,劇情說標籤0 & 1出現2次,2出現一次。 從y_train獲取標籤並將其與其計數相對照。根據您的標籤隨意更改垃圾箱數量。