我正在尝试使用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))]
答案 0 :(得分:1)
我自己以我解决它的方式回答它并且它有效。
步骤1:使用im.get_paths()获取样本六边形坐标,如上所述。
步骤2:使用im.get_offsets()获取hexbin()方法创建的所有六边形的偏移量。它为所有六边形提供x和y偏移。
步骤3:只需将偏移量添加到步骤1中获得的样本“路径”坐标中,这将给出六边形集合的实际坐标。