目前,我用matplotlib
制作了一个子图(使用
import matplotlib.pyplot as plt
fig, (ax1, ax2, ax3) = plt.subplots(3, sharex=True)
我想要我的图中名为 ax1、ax2、...阿克森 所以它应该是这样的
mylist = []
for num in xrange(n):
mylist.append('ax'+str(num))
fig, (mylist) = plt.subplots(n, sharex=True)
但是,这不起作用,因为它只是覆盖"mylist"而不是使用列表中的名称。
另一种解决方案是,如果我没有创建列表而只是使用它为轴创建的名称,但是,我不知道如何访问这些名称。 如果我尝试使用
mylist[0]
控制台说
<matplotlib.axes._subplots.AxesSubplot object at 0x09BFAEF0>
如何使用此数字绘制线条,例如
ax1.plot(data[:,0], data[:,1]
您要做的是动态创建变量。您可以使用以下代码段执行此操作:
vars()[str_name_of_your_variable] = variable_assignment
但是,强烈建议不要这样做,因为它不能提供处理可变数量数据的有效方法。最好将作业存储在列表或字典中:
fig, axes = plt.subplots(n, sharex=True)
在axes
中,您拥有所有轴,您可以通过axes[n]
.如果你愿意,你可以把它放进字典里。
创建多个轴时:
fig, axes = plt.subplots(3)
axes
将是一个包含 3 轴对象的 numpy 数组。
为了使用它们进行绘图,您可以索引数组以访问轴对象并像往常一样绘制(ax.plot(...)
(:
axes[0].plot(x, y)
如果您有许多轴,那么您也可以遍历这些轴并绘制:
for ax in axes.flatten():
ax.plot(x, y)