2017-03-09 43 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获取标签并将其与其计数相对照。根据您的标签随意更改垃圾箱数量。