Почему патчи в matplotlib определяются абсолютными единицами, а не относительными единицами? Это может быть переключено? - PullRequest
0 голосов
/ 15 октября 2019

Я только что добавил стрелку к одному из своих графиков в mpl, и мне пришлось немного возиться, пока я не заработал, чтобы он работал должным образом. Я подумал про себя: «Вы знаете, что могло бы сделать это намного проще? Если бы я мог просто указать все свойства в относительных размерах от 0 до 1».

Если вы хотите увидеть некоторый код, воткак я в конце концов решил это:

import matplotlib.pyplot as plt

fig, DSC = plt.subplots(figsize=(7,4))

DSC.plot([0,1,2],[-2,20,59])

x0,xn   = DSC.get_xlim()
y0,yn   = DSC.get_ylim()
pdx,pdy = (xn-x0),   (yn-y0)


DSC.arrow(x  = x0 + pdx*0.07,
          y  = y0 + pdy*0.03,
          dx = 0,
          dy = pdy*0.1,
          facecolor='firebrick',
          edgecolor='k',
          head_width=pdx*0.04,
          head_length=pdy*0.04,
          width=pdx*0.02)

plt.show()

Так что я сам сделал свои относительные единицы, но мне было интересно: не будет ли более разумным сделать этот способ взаимодействия по умолчанию с объектом patches по умолчаниюв общем? В чем дело? Есть ли родной способ использовать патчи в относительных единицах? И если мы уже используем абсолютные единицы, может быть, для предотвращения растяжения в других размерах, почему бы не измерять размеры фигуры в дюймах?

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