How do I extend the margin at the bottom of a figure in Matplotlib?

前端 未结 4 1831
再見小時候
再見小時候 2020-12-29 19:00

The following screenshot shows my x-axis.

\"enter

I added some labels and rot

相关标签:
4条回答
  • 2020-12-29 19:38

    Two retroactive ways:

    fig, ax = plt.subplots()
    # ...
    fig.tight_layout()
    

    Or

    fig.subplots_adjust(bottom=0.2) # or whatever
    

    Here's a subplots_adjust example: http://matplotlib.org/examples/pylab_examples/subplots_adjust.html

    (but I prefer tight_layout)

    0 讨论(0)
  • 2020-12-29 19:45

    Subplot-adjust did not work for me, since the whole figure would just resize with the labels still out of bounds.

    A workaround I found was to keep the y-axis always a certain margin over the highest or minimum y-values:

    x1,x2,y1,y2 = plt.axis()
    plt.axis((x1,x2,y1 - 100 ,y2 + 100))
    
    0 讨论(0)
  • 2020-12-29 19:54
    fig.savefig('name.png', bbox_inches='tight')
    

    works best for me, since it doesn't reduce the plot size compared to

    fig.tight_layout()
    
    0 讨论(0)
  • 2020-12-29 19:59

    A quick one-line solution that has worked for me is to use pyplot's auto tight_layout method directly, available in Matplotlib v1.1 onwards:

    plt.tight_layout()
    

    This can be invoked immediately before you show the plot (plt.show()), but after your manipulations on the axes (e.g. ticklabel rotations, etc).

    This convenience method avoids manipulating individual figures of subplots.

    Where plt is the standard pyplot from: import matplotlib.pyplot as plt

    0 讨论(0)
提交回复
热议问题