2 回答

TA贡献1862条经验 获得超6个赞
不确定这是否是您想要的。
hist2d 文档指定该函数返回一个大小为 4 的元组,其中第一项h是热图。
这h将具有与 相同的形状bins。
您可以捕获输出(它仍会绘制),并用于argwhere查找值超过第 90 个百分位数的坐标:
h, xedges, yedges, img = hist = plt.hist2d(X, Y, bins=(160,160), norm=mpl.colors.LogNorm(vmin=1, vmax=20))
print(list(np.argwhere(h > np.percentile(h, 90))))

TA贡献1875条经验 获得超5个赞
你需要Seaborn包。
你提到
我希望能够获得此直方图的结果并过滤掉具有低值的箱子,保留高箱子。
你绝对应该使用其中之一:
seaborn.joinplot(...,kind='hex')
:它显示落在六边形箱内的观测值的计数。该图最适合相对较大的数据集。seaborn.joinplot(...,kind='kde')
:使用核密度估计来可视化双变量分布。我推荐它更好。
示例“哪里”
使用级别数n_levels
并shade_lowest=False
忽略低值。
import seaborn as sns
import numpy as np
import matplotlib.pylab as plt
x, y = np.random.randn(2, 300)
plt.figure(figsize=(6,5))
sns.kdeplot(x, y, zorder=0, n_levels=6, shade=True, cbar=True,
shade_lowest=False, cmap='viridis')
添加回答
举报