Python-创建直方图

Python-创建直方图,python,numpy,matplotlib,Python,Numpy,Matplotlib,我使用的数据形式是:[num1,num2,…,numk](一个整数数组) 我想画一个特定形式的直方图,我将用一个例子来描述 假设数据=[0,5,7,2,3]。我想要一个带有以下内容的直方图: 宽度为1的箱子 x轴刻度为0,1,2,…,4(数组的每个元素一个刻度,例如,如果数组有10个元素,刻度从0到9) 对于勾号i和i+1之间的箱子,我们的频率(高度)等于数据[i]+数据[i+1],例如,在1和2之间,我们有一个高度为12的矩形 如何使用matplotlib创建这样的直方图?或者numpy,

我使用的数据形式是:
[num1,num2,…,numk]
(一个整数数组)

我想画一个特定形式的直方图,我将用一个例子来描述

假设
数据=[0,5,7,2,3]
。我想要一个带有以下内容的直方图:

  • 宽度为1的箱子
  • x轴刻度为0,1,2,…,4(数组的每个元素一个刻度,例如,如果数组有10个元素,刻度从0到9)
  • 对于勾号i和i+1之间的箱子,我们的频率(高度)等于
    数据[i]+数据[i+1]
    ,例如,在1和2之间,我们有一个高度为12的矩形

如何使用matplotlib创建这样的直方图?或者numpy,如果您愿意。

直方图的用法如下:

我会事先创建您需要的特殊数据结构,然后将其输入直方图:

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])

直方图用法如下所示:

我会事先创建您需要的特殊数据结构,然后将其输入直方图:

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])

我想这就是你想要的:

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()
这将生成下图:


然而,它不是你在问题中提到的直方图。我真的不明白你为什么要说“直方图”。

我想这就是你想要的:

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()
这将生成下图:


然而,它不是你在问题中提到的直方图。我真的不明白你为什么要说“直方图”。

你有没有试过的示例代码?downvoter请留下评论,说明你为什么试过downvoter?你有没有试过的示例代码?downvoter请留下评论,说明你为什么试过downvoter