不同列数据集之间的直方图问题

Histogram issues between different column datasets

我有一个 CSV,我从中提取不同的数据列并读入一个函数,我在其中创建直方图。我遇到的问题是,我的直方图对于一列中的数据是正确的,而对于另一列中的数据却没有显示正确的内容。例如,我有一个包含年龄的列,我的直方图在这方面效果很好,但我有另一列包含人口(与年龄相比更大),直方图只显示列中的行数。当我打印 Numpy 数组时,它打印出与年龄数据相同的结果。我在这两列之间看到的唯一区别是,年龄列有超过 10k 行,而人口行数为 558 行,人口数为 5-6 位数,而年龄为 1-2 位数。

年龄列(这些在直方图中工作):

82
50
53
67
26
56
50
26
60
26
59
54
25
53
52
67
22
55
57
84
55
74
67
70
59
62
32

人口列(直方图表示人口列中值的数量)。

43191
73901
38247
98266
66781
62075
30444
96109
40497
37964
40822
40599
28360
24949
34969
49455
18128
34586
37489
48177
22061
35218
53745
97493
39764
16193
65818
53285

我的职能是:

def histogram(column_data):
    plt.title(col_name)
    df = column_data.to_numpy()
    af = df.reshape(-1)
    plt.hist(af)
    plt.show()

有趣的行为。我也在第一个 运行 上看到它(即没有情节)。一旦我在 plot 命令中使用了 bins ,问题就消失了。正如您推测的那样,这可能与您的人口数据相对于引用精度的相对稀疏性有关。

import numpy as np
import matplotlib.pyplot as p

pop= [43191,73901,38247,98266,
66781,62075,30444,96109,
40497,37964,40822,40599,
28360,24949,34969,49455,
18128,34586,37489,48177,
22061,35218,53745,97493,
39764,16193,65818,53285]

dat= np.random.rand(1000) # less sparse data

p.figure (figsize=(10,3))

p.subplot(131)
p.hist(pop)
p.subplot(132)
p.hist(pop,bins=100);
p.subplot(133)
p.hist(dat, bins=100);