【发布时间】:2014-06-25 19:06:19
【问题描述】:
面向对象的 matplotlib 子图接口很好,但在调用包含 plt.plot(x, y 之类的行的函数时我很难使用它。这些函数很容易与plt.subplot() 一起使用,但是是否可以使用给定的轴对象设置活动子图?具体来说,我希望将以下内容绘制成两个单独的子图:
import matplotlib.pyplot as plt
x = [0 ,1, 2]
y= [0 ,1 2]
fig, axs = plt.subplots(2,1)
plt.some_function_to_set_active_subplot(axs[0])
plt.plot(x, y)
plt.some_function_to_set_active_subplot(axs[1])
plt.plot(x, y)
有some_function_to_set_active_subplot这样的功能吗?
编辑: 我特别不能使用 ax.plot 或类似的东西。我基本上是在问如何将面向对象的界面与 matlab 风格的界面混合在一起。
编辑 2: 我也不想使用 plt.subplot。我想使用 OO 接口设置子图,并使用 matlab 样式进行实际绘图。
【问题讨论】:
-
axs[0].plot(...)呢? -
我不能用那个。假设我有一些函数
plotter(x, y),其中包含一个plt.plot内部调用,我无法将函数更改为调用axs[0].plot()。 -
您可能想要更改该函数以获取额外的参数
ax。 -
同意,我倾向于用我个人编写的代码来做这件事,但有时重构是不可能的,或者是不希望的。
标签: python matplotlib