我有两个数组, x
和 y
,它们的值都在明确定义的范围内。我能够创建一个 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()
。另外,当使用
hexbin
和 xscale='log'
调用 yscale='log'
时, get_offsets()
只返回 array([[0., 0.]])
。关于python - 如何在 hexbin 图的顶部绘制轮廓?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11639202/