2 回答
TA贡献1886条经验 获得超2个赞
您应该学习一些matplotlib的OO接口,而不仅仅是状态机接口。几乎所有plt.*功能都是基本上可以完成的薄包装器gca().*。
plt.subplot返回一个axes对象。一旦有了轴对象的引用,就可以直接对其进行绘制,更改其限制等。
import matplotlib.pyplot as plt
ax1 = plt.subplot(131)
ax1.scatter([1, 2], [3, 4])
ax1.set_xlim([0, 5])
ax1.set_ylim([0, 5])
ax2 = plt.subplot(132)
ax2.scatter([1, 2],[3, 4])
ax2.set_xlim([0, 5])
ax2.set_ylim([0, 5])
依此类推,可以选择任意数量的轴。
或更妙的是,将它们包装成一个循环:
import matplotlib.pyplot as plt
DATA_x = ([1, 2],
[2, 3],
[3, 4])
DATA_y = DATA_x[::-1]
XLIMS = [[0, 10]] * 3
YLIMS = [[0, 10]] * 3
for j, (x, y, xlim, ylim) in enumerate(zip(DATA_x, DATA_y, XLIMS, YLIMS)):
ax = plt.subplot(1, 3, j + 1)
ax.scatter(x, y)
ax.set_xlim(xlim)
ax.set_ylim(ylim)
TA贡献1712条经验 获得超3个赞
您使用set_xlim
和set_ylim
。与直接使用axes对象相比,plt
具有的选项要少得多。实际上,几乎每个函数plt
都是一个非常薄的包装器,它首先调用ax = plt.gca()
然后调用该对象上曾经有过的任何函数。plt
除了交互工作之外,您不应该将其用于其他任何事情。
添加回答
举报