python - 保持一致的 matplotlib 轴限制
问题描述
我正在尝试制作一系列图形,显示不同大小的几何形状(每个图形中的一个形状),但每个图形上的轴一致、等距。我似乎无法在 matplotlibaxis('equal')
中玩得很好。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的值像图形一样“浮动”窗口已调整大小,但现在我很高兴能始终如一地获得图形中的形状。
任何帮助将不胜感激!
解决方案
您可以先独立定义一个轴,然后在定义第二个轴时使用sharex或sharey参数
new_ax = fig.add_axes([<bounds>], sharex=old_ax)
推荐阅读
- javascript - 即使连接了令牌,我也收到令牌无效错误
- ios - Xcode 13 Swift Scroll View Button 没有响应
- javascript - 如何在javascript中重叠时检测图像是否重叠并自动显示/隐藏上图
- python - 在python中使用类时如何解决类型错误?
- javascript - 使用数据库中的数据复制带有 html 表按钮的行
- java - 如何在春季获取具有特定ID的数据
- reactjs - React Native Hook 表单上的 Debounce
- node.js - 我的 mongo 查询每 2-3 分钟变得非常慢
- javascript - 由于周末,Chart.js 时间序列 x 刻度重叠
- java - 无法在 POST 的假冒代码中构建正确的请求