我有两个数组, xy ,它们的值都在明确定义的范围内。我能够创建一个 hexbin 图( see image ),但是,我现在想对这些分布进行归一化并在它们周围绘制等高线图。我对每个 hexbin 中的计数不太感兴趣。相反,我感兴趣的是显示对应于 1、2 和 3 个标准差 (σ) 的轮廓。我希望有一个输出显示类似于 this 示例的轮廓。分布为高斯分布。我将不胜感激对此的任何意见。

最佳答案

根据 hexbin 文档 https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.hexbin.html 您应该能够访问箱的 (x,y) 位置和返回变量的值。例如:

h = hexbin(...)
xy = h.get_offsets()
v = h.get_array()
您可以使用这些来绘制轮廓。
请注意,文档不正确,并说应该调用 get_offset() ,但该函数不存在,它是 get_offsets()
另外,当使用 hexbinxscale='log' 调用 yscale='log' 时, get_offsets() 只返回 array([[0., 0.]])

关于python - 如何在 hexbin 图的顶部绘制轮廓?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11639202/

10-10 22:48