我正在尝试绘制一个直方图,该直方图将每个x值与图上的y值对齐。我试图使用多种资源,但不幸的是我无法找到任何东西。这是我编写直方图的最好方法。
x = (1,2,3,4,5)
y = (1,2,3,4,5)
h=plt.hist(x,y)
plt.axis([0, 6, 0, 6])
plt.show()
我想要一张看起来像下图的图表,而不是x轴上的那些:
答案 0 :(得分:10)
从你的情节和初始代码中,我可以得知你已经有2个向量x和y的bin和频率值。在这种情况下,您将只绘制这些值的条形图,而不是使用plt.hist命令的直方图。您可以执行以下操作:
import matplotlib.pyplot as plt
x = (1,2,3,4,5)
y = (1,2,3,4,5)
plt.bar(x,y,align='center') # A bar chart
plt.xlabel('Bins')
plt.ylabel('Frequency')
for i in range(len(y)):
plt.hlines(y[i],0,x[i]) # Here you are drawing the horizontal lines
plt.show()