I want to have horizontally aligned 3D and 2D plots, where the y-axis of the 2D plot is the same height as the z-axis of the 3D plot. The following code produces a default output:
import matplotlib.pyplot as plt
fig = plt.figure()
fig.set_size_inches(10, 4)
fig.subplots_adjust(wspace=0.5)
# 3D surface plot
ax1 = fig.add_subplot(121, projection="3d")
ax1.set(zlabel="Value")
# 2D line plot
ax2 = fig.add_subplot(122)
ax2.set(ylabel="Value")
plt.show()
I want to shrink down the right hand side 2D subplot so that the y-axis (“Value”) is a similar height to (or preferably the same height as) the z-axis (“Value”) on the 3D plot (ideally I want them to line up).
I haven’t been able to find a way to change subplot sizes independently like this in matplotlib (setting relative ratios and gridspec
don’t seem able to achieve this).
Any help would be much appreciated.