matplotlib создает точечный график с помощью PathCollection - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь углубиться в matplotlib и узнать, как он работает под прикрытием. Поэтому я подумал, что будет простой задачей нарисовать несколько точек на холсте и соединить их несколькими линиями. Я был неправ. Я посмотрел исходный код для Axes.scatter . Поэтому я написал следующий код:

fig = plt.figure()
ax = fig.add_axes((0,0,1,1), frameon = True, xlim = (0,1), ylim = (0,1), xticks=[0.2], yticks=[0.2])
pos = [(0.2, 0.2), (0.2, 0.3), (0.3, 0.4), (0.4, 0.4), (0.5, 0.3), (0.5, 0.2), (0.35, 0.1)]
pp = Polygon([(0,0), (0.02, 0.02), (0.04, 0)])
#mypath = pp.get_path()
mypath = pp.get_path().transformed(pp.get_transform()) #*
dots = collections.PathCollection(paths = (mypath,), offsets= pos)
#dots.set_transform(transforms.IdentityTransform()).    #**
ax.add_collection(dots)
plt.show()

Я ожидал, что на моем холсте получится 5 треугольников. Но это только нарисовал 1 треугольник в левом нижнем углу холста. Замена строки, помеченной *, строкой над ней ничего не меняет. Добавление строки, помеченной **, приводит к тому, что один треугольник также становится равным sh. Может кто-нибудь сказать мне, как я могу достичь своей цели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...