如何从 hexbin() matplotlib 方法的 polycollection 输出中获取六边形的顶点?

how to get vertices of hexagons from the polycollection output of hexbin() matplotlib method?

我正在尝试使用 matplotlib 和 python 从 hexbin() 方法中获取六边形的顶点。得到了没有。每个六边形中的点使用 .get_arrays() 并尝试使用 get_paths() 获取顶点坐标,但它只给了我 1 条路径(即只有 1 个六边形的顶点)。

如何检索所有六边形的顶点?尝试过的代码与输出一起写在下面。

x, y = np.random.normal(size=(2, 10000))
fig, ax = plt.subplots()
im = ax.hexbin(x, y, gridsize=20)
paths=im.get_paths()
print(paths)
fig.colorbar(im, ax=ax)

[正在生成的输出地图有超过 1 个六边形。由于帐户限制,我无法在此处上传,因为我是新手。][2]

 [Path(array([[ 0.18489907, -0.1102285 ],
   [ 0.18489907,  0.1102285 ],
   [ 0.        ,  0.22045701],
   [-0.18489907,  0.1102285 ],
   [-0.18489907, -0.1102285 ],
   [ 0.        , -0.22045701],
   [ 0.18489907, -0.1102285 ]]), array([ 1,  2,  2,  2,  2,  2, 79], dtype=uint8))]

我正在按照我解决它的方式自己回答它并且有效。

第 1 步:使用 im.get_paths() 获取示例六边形坐标,如上文所述。

第 2 步:使用 im.get_offsets() 获取由 hexbin() 方法创建的所有六边形的偏移量。它给出了所有六边形的 x 和 y 偏移量。

第 3 步:只需将偏移量添加到第 1 步中获得的样本 'path' 坐标,这将给出六边形集合的实际坐标。