直方图的哪一部分是指二维数组的行,同时使用matplot库绘制图形?

时间:2017-05-12 03:35:21

标签: python matplotlib

我使用success: function (data) { alert(data); var result = $.parseJSON(data); console.log(result); var test1 = map_data.map; //This creates a instanc of google maps var location_array = []; var tech_loc = result['Success'][0].length; for(var i=0; i < tech_loc; i++){ location_array.push( { "lat": result['Success'][0][i][0], "lng": result['Success'][0][i][1] }); } console.log(JSON.stringify(location_array)); var marker = new google.maps.Marker({ //This places a marker on the map position: location_array, map: test1 }); 绘制图形b / w 2维numpy数组和bin。在此之前,我只使用两个列表绘制图表。在直方图中,将有三个堆叠条对应于数组matplotlib中的列数。我想知道命令a正在对数组的行进行什么操作?

plt.hist

1 个答案:

答案 0 :(得分:2)

排序答案:行对应于样本,列对应变量。

答案很长:

直方图将值范围划分为n个bin(在您的示例中为5)。然后,它计算每个箱子中的值的数量。

为了说明,让我们生成0到20之间的1000个随机数:

import numpy as np
a = np.random.randint(0, 20 + 1, 1000)

这些值的直方图,使用5个区间,将按如下方式定义区间:

bin 1:0到4
bin 2:4到8
bin 3:8到12
bin 4:12到16
bin 5:16到20

然后,对于每个bin,它将计算落入相应范围的值的数量。最后,它会将每个bin中的值的数量绘制为条形图:enter image description here

在上面的例子中,我使用了一个列表(或1d数组)的值。如果我们使用2D阵列怎么办?然后,对每列重复上述直方图操作:

b = np.random.randint(0, 21, 3000).reshape(1000, 3)
plt.hist(b, bins=5)

enter image description here

如果设置stacked=True,则生成的直方图会相互叠加:

plt.hist(b, bins=5, stacked=True)

enter image description here