Я пытаюсь нарисовать прямоугольник в matplotlib, используя следующий код:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig, ax = plt.subplots()
width = 20
height = 10
rect = patches.Rectangle((0,0),width, height, linewidth=4,edgecolor='r',facecolor='none')
ax.add_patch(rect)
plt.show()
Что приводит к:

В этом случае оси не соответствуют границам прямоугольника. Я мог бы решить это с:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig, ax = plt.subplots()
width = 20
height = 10
ax.set_xlim(0,width)
ax.set_ylim(0,height)
rect = patches.Rectangle((0,0),width, height, linewidth=4,edgecolor='r',facecolor='none')
ax.add_patch(rect)
plt.show()
Это дает мне следующую картину, которая решает проблему в данном случае:

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