62
votes

I'm trying to figure out a way of deleting (dynamically) subplots in matplotlib. I see they have a remove method, but I get the error

NotImplementedError: cannot remove artist

I'm surprised that I can't find this anywhere. Does anyone know how to do this?

2

2 Answers

133
votes

Wow, ok well I feel really stupid :P

from matplotlib import pyplot as plt
fig, axs = plt.subplots(1,3)
axs[0].plot([1,2],[3,4])
axs[2].plot([0,1],[2,3])
fig.delaxes(axs[1])
plt.draw()

In case anyone else needs it.

22
votes
ax.set_visible(False)

will suffice in most cases.