gpt4 book ai didi

python - 如何为子图设置 xlim 和 ylim

转载 作者:IT老高 更新时间:2023-10-28 12:26:25 27 4
gpt4 key购买 nike

我想限制 matplotlib 中特定子图的 X 和 Y 轴。子图本身没有任何轴属性。例如,我想仅更改第二个图的限制:

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()

最佳答案

您应该使用面向 matplotlib 的 OO 接口(interface),而不是状态机接口(interface)。几乎所有的 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)

关于python - 如何为子图设置 xlim 和 ylim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15858192/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com