如何从 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' 坐标,这将给出六边形集合的实际坐标。
我正在尝试使用 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' 坐标,这将给出六边形集合的实际坐标。