首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同列数据集之间的直方图问题

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

Stack Overflow用户
提问于 2020-09-22 10:50:07
回答 1查看 29关注 0票数 1

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

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

代码语言:javascript
复制
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

Population列(直方图表示Population列中的值数)。

代码语言:javascript
复制
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

我的功能是:

代码语言:javascript
复制
def histogram(column_data):
    plt.title(col_name)
    df = column_data.to_numpy()
    af = df.reshape(-1)
    plt.hist(af)
    plt.show()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-22 11:02:26

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

代码语言:javascript
复制
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);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64002401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档