Python Matplotlib:使轴符合形状限制
我尝试使用以下代码在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
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()