我正在使用以下格式的数据:[num1,num2,..., numk]
(整数数组)。
我想绘制一个特定形式的直方图,我将用一个例子来描述。
假设data = [0,5,7,2,3]
。我想要一个直方图:
data[i] + data[i+1]
,例如在1到2之间,我们有一个高度为12的矩形。如何使用matplotlib创建这样的直方图?或者是numpy,如果你愿意的话。
答案 0 :(得分:1)
直方图的使用是例如这里:
http://matplotlib.org/examples/api/histogram_demo.html
http://matplotlib.org/examples/pylab_examples/histogram_demo_extended.html
我会事先创建您想要的特殊数据结构,然后将其输入直方图:
map(int.__add__, data[1:], data[0:-1])
> [5, 12, 9, 5]
如果你已经导入numpy,你也可以
a=numpy.array(data[0:-1])
b=numpy.array(data[1:])
a+b
> array([ 5, 12, 9, 5])
答案 1 :(得分:0)
我认为这就是你要找的东西:
data = np.array([0,5,7,2,3])
datax = np.arange(np.size(data))
fig = plt.figure(1, figsize=(7,7))
ax = fig.add_subplot(111)
ax.plot(datax[:-1], data[:-1]+data[1:], color='k')
ax.xaxis.set_ticks(datax)
ax.set_ylim(0,13)
ax.set_xlim(0,3)
plt.show()
产生下图:
然而,正如您在问题中提到的那样,它不是直方图。我实际上不明白为什么你在谈论“直方图”。