当前位置: 首页 > 知识库问答 >
问题:

将直方图的最后一个条柱设置为一个范围,以包括所有大值

郎喜
2023-03-14

当数字列表中存在异常值时,其直方图的最后一个条柱短且稀疏。因此,我希望有最后一个箱子来使用范围。对于此示例,包含大于 10 的所有值将为 10。

import seaborn as sns
import matplotlib.pyplot as plt 
l = [1,2,3,4,5,1,2,3,6,7,8,6,4,5,3,2,8,3,1,2,3,5,6,7,15,20]
sns.displot(l, binwidth = 1, kde=True, rug=False)
plt.show()

上面列表的直方图

我还没想好怎么和海伯恩在一起。如果matplotlib能奏效,那也太棒了。提前致谢!

共有1个答案

公孙辰龙
2023-03-14

没有直接的方法,但是您可以重新处理一些数据以将其裁剪为所需值,然后手动设置xticks / xtick标签:

import seaborn as sns
import matplotlib.pyplot as plt 

l = [1,2,3,4,5,1,2,3,6,7,8,6,4,5,3,2,8,3,1,2,3,5,6,7,15,20]

MAX = 10 # max value after which the data will be grouped

f = sns.displot(np.clip(l, 0, MAX+1), binwidth = 1, kde=True, rug=False)
f.ax.set_xticks(np.arange(1, MAX+1)+0.5)
f.ax.set_xticklabels(np.arange(1, MAX).tolist()+[f'{MAX}+'])

输出:

 类似资料:
  • 在一个地块上有原始垃圾箱=数组([0,2500,5000,7500,10000,12500,15000,17500,20000,22500,25000,27500,30000,32500,35000,37500,40000,42500,45000,47500,50000,52500,55000,60000,62500,65000,67500,70000,72500,75000,85000,8750

  • 问题内容: 假设有一个与此问题类似的情况。我想得到以下结果: 我可以使用选定的答案作为解决方案: 我如何确保即使在该范围内没有任何结果,也将显示30-39的分数范围? 问题答案: 尝试以下查询(也在SQL Fiddle上): 编辑: 您可以通过将参数更改为轻松调整范围。可以使用以下构造来确保始终覆盖您的分数: 对于CTE。

  • 如何将值中的所有位设置为1?使用AVX或AVX2的本质? 而我似乎在AVX中找不到一个简单的按位非运算?如果这是可用的,我可以简单地使用setzero,后面跟着一个向量NOT。

  • 我正在尝试创建一个具有自定义垃圾箱范围的直方图。但是,正如您在下面的直方图中看到的,垃圾箱宽度不是恒定的大小。 理想情况下,我想要这样的东西。箱之间的间距并不重要,我只是希望每个箱子/列的宽度相同: 我用来生成第一个直方图的代码是:

  • 我正在尝试使用谷歌应用程序脚本将谷歌工作表中的所有公式从一个工作表(1月)复制到多个工作表(2月、3月、4月等)。下面的代码正在为单元格A1执行我想要的操作。但是,我想将所有公式(或者说A1:Z10)从表1复制到目标表中各自的单元格中。 除此之外,我确信还有一个更好的方法来写这个:例如,类似于和而不是为每个月创建单独的变量。

  • 我想知道如何导入一个范围,排除源中第一个空行之后的所有行。 例如,假设有一张有200行的工作表,但第101行是空的,但从102到200,所有行都有值。我只想导入1:100行。 我需要独立于源工作表中有多少行来执行此操作,因为我们定期导入数据,每次导入时有效行的数量都会增加。