Skip to content Skip to sidebar Skip to footer

Plot A Large Number Of Axis Objects Using One Command Through A Loop

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(x,y) (obviously si

Solution 1:

you can try something like this:

import matplotlib.pyplotas 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

Solution 2:

you can also use map, x and y being name space variables and axx some iterable over your axes objects:

x = ...
y = ...

defplotxy(ax):
    ax.plot(x,y)

map(plotxy,axx)

Solution 3:

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 inrange(1, n+1) )
for ax in axes:
    plotxy(ax,x,y)

Post a Comment for "Plot A Large Number Of Axis Objects Using One Command Through A Loop"