Say I have a bunch of ax1,ax2,ax3... and I want to run them through a plotting function:
def plotxy(ax,x,y):
x = np.array(x)
y = np.array(y)
ax.plot(
you can try something like this:
import matplotlib.pyplot as plt
fig, axs = plt.subplots(nrows=3, ncols=2)
for ax in axs.flat:
plotxy(ax,x,y)
If you use plt.subplot
or plt.axes
you can create a list/array of axes by hand
I'm probably missing something in your question, but why don't you just use a simple loop?
for ax in ( ax1, ax2, ..., axn ):
plotxy(ax,x,y)
You can also avoid the explicit listing all variables:
axes = ( locals()['ax%d'%i] for i in range(1, n+1) )
for ax in axes:
plotxy(ax,x,y)
you can also use map, x
and y
being name space variables and axx
some iterable over your axes objects:
x = ...
y = ...
def plotxy(ax):
ax.plot(x,y)
map(plotxy,axx)