### Summary:

Assume that

```
import matplotlib.pyplot as plt
```

has been executed.

When using `mplot3d`

in IPython you have to manually draw the axes
which can be done using the `plt.draw`

function (or `plt.plot([],[])`

).

For some reason the axes are not automatically drawn as with 2d plots.

### The full story:

IPython provides some nice functionality for interactive plotting. For instance, the code

```
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
```

pops up a figure with the graph of the `sin`

function over the interval $[0,2\pi]$.

When using `mplot3d`

for 3d plots in IPython the constructed axes are
not drawn by default. For instance the code (taken from the `mplot3d`

examples)

```
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
def randrange(n, vmin, vmax):
return (vmax-vmin)*np.random.rand(n) + vmin
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 100
for c, m, zl, zh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]:
xs = randrange(n, 23, 32)
ys = randrange(n, 0, 100)
zs = randrange(n, zl, zh)
ax.scatter(xs, ys, zs, c=c, marker=m)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
```

results in a blank figure on the screen. In order to see the results one
must manually draw the axes which can be done with the `plt.draw`

function
(or with `plt.plot([],[])`

). I have no idea why this is the case, but
hopefully it will be fixed at some point.