首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确显示我的不等箱直方图?

如何正确显示我的不等箱直方图?
EN

Stack Overflow用户
提问于 2019-06-11 22:50:05
回答 1查看 100关注 0票数 0

我的数据由以下几部分组成:

大多数数字小于60,然后是2000年代的一些异常值。

我想以直方图的形式显示它,它的柱状图范围如下:

0-1, 1-2, 2-3, 3-4, ..., 59-60, 60-max

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.axes as axes

b = list(range(61)) + [2000] # will make [0, 1, ..., 60, 2000]

plt.hist(b, bins=b, edgecolor='black')
plt.xticks(b)

plt.show()

这将显示以下内容:

基本上你看到的都是数字0 ..60在左边挤在一起,2000在右边。这不是我想要的。

所以我删除了[2000],得到了我想要的东西:

正如您现在看到的,它是更好的,但我仍然有以下问题:

我如何解决这个问题,使图表周围没有任何空白(在0之前和60之后有一个很大的差距)。

我如何解决这个问题,使60之后,在最后显示一个2000刻度,同时仍然保持大致相同的间距(不像第一个?)

EN

回答 1

Stack Overflow用户

发布于 2019-06-11 23:08:39

这里有一个使用随机数据的解决方案。我仍然不太明白你的第二个问题,但我试着根据你的措辞做一些事情

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.axes as axes

fig, ax = plt.subplots(figsize=(12, 6))
data= np.random.normal(10, 5, 5000)

upper = 31
outlier = 2000

data = np.append(data, 100*[upper])
b = list(range(upper)) + [upper]

plt.hist(data, bins=b, edgecolor='black')
plt.xticks(b)
b[-1] = outlier
ax.set_xticklabels(b)
plt.xlim(0, upper)
plt.show()

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

https://stackoverflow.com/questions/56546393

复制
相关文章

相似问题

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