Embedding 2D figures in a 3D figure
We have seen in Chapter 3, Working with Annotations, how to annotate figures. A powerful way to annotate a three-dimensional figure is to simply use two-dimensional figures. This recipe is a simple example to illustrate this possibility.
How to do it...
To illustrate the idea, we are going to plot a simple 3D surface and two curves using only the primitives that we have already seen before, as shown in the following code:
import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt x = np.linspace(-3, 3, 256) y = np.linspace(-3, 3, 256) X, Y = np.meshgrid(x, y) Z = np.exp(-(X ** 2 + Y ** 2)) u = np.exp(-(x ** 2)) fig = plt.figure() ax = fig.gca(projection = '3d') ax.set_zlim3d(0, 3) ax.plot(x, u, zs=3, zdir='y', lw = 2, color = '.75') ax.plot(x, u, zs=-3, zdir='x', lw = 2., color = 'k') ax.plot_surface(X, Y, Z, color = 'w') plt.show()
The preceding code will produce the following figure:
The black and gray curves are drawn as...