Python Matplotlib:使轴符合形状限制

Python Matplotlib:使轴符合形状限制,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我尝试使用以下代码在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(r

我尝试使用以下代码在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智能确定正确轴限制的方法,就像绘制法线图时一样。

您正在寻找
.autoscale()
。您可以使用
.margins(0)
删除默认情况下添加的任何额外空间

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)
ax.margins(0)
ax.autoscale()

plt.show()