matplotlib/matplotlib — pull request #1515 by ivanov (2012-11-17 01:51:44+00:00)
Title: set_cmap should not require an active image

Before this commit, it was not possible to change the default colormap if there
wasn't an active colorable artist, i.e. if plt.gci() returned None.

There's no reason why we should force this, though, since part of what
plt.set_cmap does is setting the default colormap for all FUTURE colorable
artists which will be created.

Colormaps which are currently exposed as their own functions in pyplot, such as
plt.gray(), plt.hsv(), plt.hot() and plt.jet() make no such restriction, they
do not complain if plt.gci() happens to return None.

Prior to this commit
```
In [2]: plt.set_cmap('bwr')
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
in ()
----> 1 plt.set_cmap('bwr')

/home/pi/.local/lib/python2.7/site-packages/matplotlib/pyplot.pyc in set_cmap(cmap)
2029 im.set_cmap(cmap)
2030 else:
-> 2031 raise RuntimeError('You must first define an image, eg with imshow')
2032
2033 draw_if_interactive()

RuntimeError: You must first define an image, eg with imshow

In [3]:
```

After this commit, no error is thrown, and the appropriate colormap is activated.
```
In [2]: plt.set_cmap('bwr')

In [3]:
```