我正在尝试生成一系列图形,这些图形显示不同大小的几何形状(每个图形中的一个形状),但每个图形上的坐标轴均等,间距一致。我似乎无法axis('equal')
与matplotlib中的set_xlim
玩得很好。
这是我到目前为止最接近的一个
pts0 = np.array([[13,34], [5,1], [ 0,0], [7,36], [13,34]], dtype=np.uint8)
pts1 = np.array([[10,82], [119,64], [149,63], [136,0], [82,14], [81,18],
[26,34], [3,29], [0,34], [10,82]], dtype=np.uint8)
shapes = [pts0,pts1]
for i in range(2):
pts = shapes[i]
fig = plt.figure()
ax1 = fig.add_subplot(111)
plotShape = patches.Polygon(pts, True, fill=True)
p = PatchCollection([plotShape], cmap=cm.Greens)
color = [99]
p.set_clim([0, 100])
p.set_array(np.array(color))
ax1.add_collection(p)
ax1.axis('equal')
ax1.set_xlim(-5,200)
ax1.set_ylim(-5,200)
ax1.set_title('pts'+str(i))
plt.show()
在我的系统中,这将导致两个具有相同轴的图形,但其中两个都没有显示y = 0或形状的下部。如果我删除行ax1.set_ylim(-5,200)
,则图“ pts1”看起来正确,但是图“ pts0”的限制使得该形状完全不显示。
我的理想情况是将图形的左下角“固定”在(-5,-5)处,将xlim定义为200,并允许将x轴的缩放比例和ymax的值缩放为“ float”当调整了图形窗口的大小时,但现在我很高兴能始终如一地获得图形内部的形状。
任何帮助将不胜感激!
答案 0 :(得分:0)
您可以先独立定义一个轴,然后在定义第二个轴时,使用 sharex 或 sharey 自变量
new_ax = fig.add_axes([<bounds>], sharex=old_ax)