pythonpandasmatplotlibseabornsubplot

How to plot in multiple subplots


I am a little confused about how this code works:

fig, axes = plt.subplots(nrows=2, ncols=2)
plt.show()

How does the fig, axes work in this case? What does it do?

Also why wouldn't this work to do the same thing:

fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)

Solution

  • There are several ways to do it. The subplots method creates the figure along with the subplots that are then stored in the ax array. For example:

    import matplotlib.pyplot as plt
    
    x = range(10)
    y = range(10)
    
    fig, ax = plt.subplots(nrows=2, ncols=2)
    
    for row in ax:
        for col in row:
            col.plot(x, y)
    
    plt.show()
    

    enter image description here

    However, something like this will also work, it's not so "clean" though since you are creating a figure with subplots and then add on top of them:

    fig = plt.figure()
    
    plt.subplot(2, 2, 1)
    plt.plot(x, y)
    
    plt.subplot(2, 2, 2)
    plt.plot(x, y)
    
    plt.subplot(2, 2, 3)
    plt.plot(x, y)
    
    plt.subplot(2, 2, 4)
    plt.plot(x, y)
    
    plt.show()
    

    enter image description here