如何在matplotlib中为子图设置xlim和ylim

我想在matplotlib中限制X和Y轴,但要指定一个特定的子图。如我所见,子图图本身没有任何axis属性。例如,我只想更改第二个图的极限!


import matplotlib.pyplot as plt

fig=plt.subplot(131)

plt.scatter([1,2],[3,4])

fig=plt.subplot(132)

plt.scatter([10,20],[30,40])

fig=plt.subplot(133)

plt.scatter([15,23],[35,43])

plt.show()


FFIVE
浏览 4303回答 2
2回答

MM们

您应该学习一些matplotlib的OO接口,而不仅仅是状态机接口。几乎所有plt.*功能都是基本上可以完成的薄包装器gca().*。plt.subplot返回一个axes对象。一旦有了轴对象的引用,就可以直接对其进行绘制,更改其限制等。import matplotlib.pyplot as pltax1 = 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 pltDATA_x = ([1, 2],          [2, 3],          [3, 4])DATA_y = DATA_x[::-1]XLIMS = [[0, 10]] * 3YLIMS = [[0, 10]] * 3for 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)

交互式爱情

您使用set_xlim和set_ylim。与直接使用axes对象相比,plt具有的选项要少得多。实际上,几乎每个函数plt都是一个非常薄的包装器,它首先调用ax = plt.gca()然后调用该对象上曾经有过的任何函数。plt除了交互工作之外,您不应该将其用于其他任何事情。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python