Python 2D柱状图颜色按“颜色”;“标签分数”;每个箱子中的数据量

Python 2D柱状图颜色按“颜色”;“标签分数”;每个箱子中的数据量,python,matplotlib,scipy,histogram,binning,Python,Matplotlib,Scipy,Histogram,Binning,以下是在此处找到的帖子: 在Python中,我想用标签值低于某个阈值的点的分数为2D网格中的每个箱子上色 请注意,在此数据集中,每个点都有一个介于0-1之间的连续标签值 例如,我制作了一个直方图,其中颜色表示每个箱子中所有点标签值的标准偏差: 这样做的方式是使用 scipy.stats.binned_statistic_2d() (见:) ..并将统计参数设置为“std” 但是有没有一种方法可以改变这种类型的绘图,例如,使颜色代表每个箱子中标签值低于0.5的点的分数 可能唯一的方法是明确定义

以下是在此处找到的帖子:

在Python中,我想用标签值低于某个阈值的点的分数为2D网格中的每个箱子上色

请注意,在此数据集中,每个点都有一个介于0-1之间的连续标签值

例如,我制作了一个直方图,其中颜色表示每个箱子中所有点标签值的标准偏差:

这样做的方式是使用

scipy.stats.binned_statistic_2d()
(见:)

..并将统计参数设置为“std”

但是有没有一种方法可以改变这种类型的绘图,例如,使颜色代表每个箱子中标签值低于0.5的点的分数

可能唯一的方法是明确定义某种网格并计算分数,但我不确定这样做的最佳方法,因此对此问题的任何帮助都将不胜感激


也许使用scipy.stats.binned_statistic_2d或numpy.histogram2d并能够将每个bin中的原始数据值作为多维数组返回将有助于快速明确地计算分数

数组中低于阈值的元素分数可以计算为

fraction = lambda a, threshold: len(a[a<threshold])/len(a)
scipy.stats.binned_statistic_2d(x, y, values, statistic=lambda a: fraction(a, 0.5))