Python 从pyplot轴列表创建子图
我想根据从绘图功能获得的轴列表创建一个绘图:Python 从pyplot轴列表创建子图,python,matplotlib,plot,scipy,Python,Matplotlib,Plot,Scipy,我想根据从绘图功能获得的轴列表创建一个绘图: import matplotlib.pyplot as plt def func(): x = range(10) y = range(10) plt.plot(x,y) return plt.gca() fig, axs = plt.subplots(nrows=1, ncols=4) for ax in axs: ax = func() plt.show() 但是,我得到的图如下所示,并且在最后一个子图
import matplotlib.pyplot as plt
def func():
x = range(10)
y = range(10)
plt.plot(x,y)
return plt.gca()
fig, axs = plt.subplots(nrows=1, ncols=4)
for ax in axs:
ax = func()
plt.show()
但是,我得到的图如下所示,并且在最后一个子图中有所有图形:
如果可能,我希望按原样使用绘图功能,而不是更改它。可能吗?非常感谢 多亏了这个解决方案,才能找到:
import matplotlib.pyplot as plt
def func():
x = range(10)
y = range(10)
plt.plot(x,y)
return plt.gca()
fig, axs = plt.subplots(nrows=1, ncols=4, figsize=(5,3))
for ax in axs:
plt.sca(ax)
ax = func()
plt.tight_layout()
plt.show()
现在,我得到:
将
ax
传递给您的函数并直接对其进行操作。谢谢!我知道这个解决方案,但希望在for循环中设置轴,而不是通过将其传递给函数来操作axes对象。这可能吗?检查plt.sca()
需要一个轴作为参数。当执行plt.sca(plt.gca())
时,我得到了与上述相同的结果(当然)Yesplt.sca(ax)
。