如何在六边形图上绘制等高线?

5

我有两个数组,xy,它们的值都在一个明确定义的范围内。 我能创建一个六边形图(见图片),但是,我现在想将这些分布标准化并在它们周围绘制等高线图。 我对每个六边形中的计数不是非常感兴趣。 相反,我希望显示与1、2和3标准偏差(σ)相对应的轮廓。 我希望输出显示类似于此示例的轮廓。 分布是高斯的。 我会非常感激任何关于此的建议。


1
请问您在使用numpy还是matplotlib?能否在您的问题中澄清一下? - Lenna
抱歉,我正在使用matplotlib。 - Paul
1
链接失效了。这就是为什么要求人们离开网站去理解你的问题是一个坏主意的原因。 - Mad Physicist
2个回答

0
根据hexbin文档https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.hexbin.html,您应该能够从返回的变量中访问到bin的(x,y)位置和值。例如:
h = hexbin(...)
xy = h.get_offsets()
v = h.get_array()

您可以使用这些来绘制轮廓。

请注意,文档不正确,并且说应该调用get_offset(),但是该函数不存在,它是get_offsets()

此外,当使用xscale='log'yscale='log'调用hexbin时,get_offsets()仅返回array([[0., 0.]])


请参见 https://github.com/matplotlib/matplotlib/issues/18045 以查看错误报告。 - mankoff

-3

我已经回答过有关如何创建轮廓图的问题。请查看 已回答的问题 的链接。如果您有任何其他问题或想法,请在评论区留言,我会尽快回答。


1
链接的问题完全不同。@Paul并不是在询问如何创建通用轮廓图 - 他正在询问如何在六边形图上创建轮廓图。 - spacetyper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接