Подтвердить что ты не робот

Можно ли контролировать ориентацию маркера matplotlib?

Я хотел бы знать, есть ли у меня треугольный маркер, можно ли контролировать его ориентацию? У меня есть ряд граней с их соответствующими вершинами, и я хотел бы построить их базовую карту. Я знаю, что это прямой script при использовании Mayavi и tvtk.PolyData. Но поскольку я имею дело с картами, а не с 3D-объектами, все становится немного сложнее.

ps: для карт я использую инструмент basemap.

Спасибо за любую помощь.

4b9b3361

Ответ 1

Вы можете создать пользовательские полигоны, используя аргумент ключевого слова marker и передав ему кортеж из трех чисел (number of sides, style, rotation).

Чтобы создать треугольник, вы должны использовать (3, 0, rotation), пример показан ниже.

import matplotlib.pyplot as plt

x = [1,2,3]
for i in x:
    plt.plot(i, i, marker=(3, 0, i*90), markersize=20, linestyle='None')

plt.xlim([0,4])
plt.ylim([0,4])

plt.show()

Plot

Ответ 2

Посмотрите на модуль matplotlib.markers. Особый интерес представляет тот факт, что вы можете использовать произвольный многоугольник с заданным углом:

marker = (3, 0, 45)  # triangle rotated by 45 degrees.