我正在尝试使用 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)
[正在生成的输出 map 有超过 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 步中获得的示例“路径”坐标,这将给出六边形集合的实际坐标。
关于python - 如何从 hexbin() matplotlib 方法的 polycollection 输出中获取六边形的顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35422146/