2016-02-16 3 views
1

Я пытаюсь получить вершины шестиугольников, полученных методом hexbin(), используя matplotlib и python. Получил нет. точек в каждом шестиугольнике с использованием .get_arrays() и попытался получить координаты вершин с помощью get_paths(), но он дает мне всего 1 путь (т.е. вершины всего 1 шестиугольника).Как получить вершины шестиугольников из вывода поликоллекции метода hexbin() matplotlib?

Как получить вершины всех шестиугольников? Сведенный код записывается ниже с выходом.

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) 

enter image description here

[выходная карта, которая генерируется имеет более чем 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

В чем проблема? похоже, что у вас есть вершины в этом объекте пути. –

+0

Проблема заключается в том, что массив путей имеет вершины только одного шестиугольника, но не для всех. Я хочу для всех шестиугольников. –

+0

Но как мы можем знать, что без минимального, но полного рабочего примера? –

ответ

1

я отвечаю ему себя так, как я ее решил и он работал.

Шаг 1: Получите шестнадцатеричные координаты образца с im.get_paths(), как указано выше в вопросе.

Шаг 2: Получите смещения всех шестиугольников, созданных методом hexbin(), используя im.get_offsets(). Он дает смещения x и y для всех шестиугольников.

Шаг 3: Просто добавьте смещения к образцам «пути», полученные на шаге 1, и это даст фактические координаты коллекции шестиугольников.

 Смежные вопросы

  • Нет связанных вопросов^_^