The code below creates a 4x4 grid of plots as expected:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(10)
rows, cols = 4, 4
_, axs = plt.subplots(rows, cols, figsize=(5,5))
for i in range(rows):
for j in range(cols):
axs[i,j].plot(x,x)
But things go wrong when I try to display subplots with 2 rows and 4 columns (same code with rows, cols = 2, 4):
When I would expect something like this:
If I try to add axs[i,j].set_aspect('equal', 'box') after each plot, I get:
Which is somehow better, but still leaves an empty line, just as if the default "tall rectangle" figure was leaving its footprint. Overall I have the impression that matplotlib wants its subplots to look "square-y".
Before I look into complicated layout matters, does anybody know about some straightforward way to come up with the result I'm expecting (which is not so crazy to expect, right?)




