Creating a 3D bar plot
Using several 2D layers in a 3D figure, we can plot multiple bar plots. However, we can also go full 3D and plot bar plots with actual 3D bars.
How to do it...
To demonstrate 3D bar plots, we will use the simple, synthetic dataset from the previous recipe as shown in the following code:
import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt # Data generation alpha = np.linspace(1, 8, 5) t = np.linspace(0, 5, 16) T, A = np.meshgrid(t, alpha) data = np.exp(-T * (1. / A)) # Plotting fig = plt.figure() ax = fig.gca(projection = '3d') Xi = T.flatten() Yi = A.flatten() Zi = np.zeros(data.size) dx = .25 * np.ones(data.size) dy = .25 * np.ones(data.size) dz = data.flatten() ax.set_xlabel('T') ax.set_ylabel('Alpha') ax.bar3d(Xi, Yi, Zi, dx, dy, dz, color = 'w') plt.show()
This time, the bars appear as 3D blocks as shown in the following figure:
How it works...
The bars are positioned with a grid layout. The bar3d()
method takes six mandatory...