Pyplot: класс Circle: каковы единицы измерения оси arg? - PullRequest
0 голосов
/ 20 января 2019

Какие единицы измерения использует Pyplot для размера радиуса объектов класса Circle? Поиграв с этим, кажется, что радиус 0,6 уже почти за кадром ... маленький пример ниже

import matplotlib as plt
plt.use('TkAgg')
import matplotlib.pyplot as plt
circle = plt.Circle((0.5, 0.5), 0.6, color='white')
fig, ax = plt.subplots()
plt.subplot
plt.axis('off')
ax.add_artist(circle)
fig.set_facecolor("black")

enter image description here

1 Ответ

0 голосов
/ 20 января 2019

Абсолютные единицы измерения используются для радиуса. Причина, по которой 0,6 выходит за пределы оси, заключается в том, что по умолчанию, если вы просто строите пустую фигуру, ее экстент составляет от 0 до 1. Например,

fig, ax = plt.subplots()
ax.set_aspect('equal')

результаты в

enter image description here

Теперь, если вы центрируете свой круг в (0,5, 0,5) и используете радиус 0,6, он выйдет за пределы оси, и вы увидите усеченный патч, как вы видите в своем вопросе.

Вещи проясняются, когда вы удаляете plt.axis('off') и используете radius = 0.5

circle = plt.Circle((0.5, 0.5), 0.5, color='blue')
fig, ax = plt.subplots(figsize=(3,3))
# plt.axis('off') <--- commented out
ax.add_artist(circle)
fig.set_facecolor("gray")
ax.set_aspect('equal')
plt.plot([0.5], [0.5], 'ro')

enter image description here

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