【发布时间】:2018-10-25 10:10:14
【问题描述】:
我有两个长度均为 3500 的向量(r1 和 r2),我想比较它们。问题是当我使用plt.bar 时,我得到了两种不同类型的 r2 绘图。这怎么可能?
谁能告诉我我的代码有什么问题?
def compare_representations(r1, r1title, r2, r2title, image, k):
ka = np.asarray(range(k)) #ka =3500
plt.figure(figsize=(13,10))
#histogram Query
hiq = plt.subplot(2,2,1)
hiq.set_title("Histogram for " + r1title)
hiq.set_xlabel("Visual words")
hiq.set_ylabel("Frequency")
#hist1 = plt.plot(r1, color='orangered')
hist1 = plt.bar(ka,r1,width=1.0,color="orangered")
#histogram Image
his = plt.subplot(2,2,2)
his.set_title("Histogram for "+ r2title)
his.set_xlabel("Visual words")
his.set_ylabel("Frequency")
#hist2 = plt.plot(r2, color='mediumslateblue')
hist2 = plt.bar(ka,r2,width=1.0,color='mediumslateblue')
#histograms compared
comp = plt.subplot(2,2,3)
comp.set_title("Compare Histograms: ")
comp.set_xlabel("Visual words")
comp.set_ylabel("Frequency")
#plt.plot(r1, color ='orangered')
#plt.plot(r2, color = 'mediumslateblue')
plt.bar(ka,r1,width=1.0,color ='orangered')
plt.bar(ka,r2,width=1.0,color = 'mediumslateblue')
#plot founded image
ax = plt.subplot(2,2,4)
ax.grid(False)
img = mpimg.imread(image, format='jpeg')
# Turn off tick labels and show just name of founded image
ax.set_yticklabels([])
ax.set_xticklabels([])
ax.set_xlabel(os.path.basename(image))
imgplot = plt.imshow(img)
plt.show()
return(hist1, hist2, imgplot)
【问题讨论】:
-
可以分享输入数据吗?
-
嗨! here 你可以找到包含所有数据库向量的文件(.npy)(r2 是这个向量之一)。 r1 在 .txt 文件中。 k = 3500。图像不是必需的。谢谢!
-
使用我自己的(减少的)变量值(r1,r1title,r2,r2title,)代码对我来说正常工作
-
哦,这很奇怪...您将值降低了多少?
-
@RoRy .npy 文件是二进制文件,我看不懂,能否将 r2 向量发送为 csv 或类似格式?如果你只是
pickle.dump()r1 和 r2 就更好了,所以我确定我使用的输入与你使用的相同。
标签: python matplotlib bar-chart