[Python] matplotlib savefig image size with bbox_inches='tight'

Discussão em 'Python' iniciado por Stack, Março 9, 2025.

  1. Stack

    Stack Membro Participativo

    I have to make a vector plot and I want to just see the vectors without the axes, titles etc so here is how I try to do it:

    pyplot.figure(None, figsize=(10, 16), dpi=100)
    pyplot.quiver(data['x'], data['y'], data['u'], data['v'],
    pivot='tail',
    units='dots',
    scale=0.2,
    color='black')

    pyplot.autoscale(tight=True)
    pyplot.axis('off')
    ax = pyplot.gca()
    ax.xaxis.set_major_locator(pylab.NullLocator())
    ax.yaxis.set_major_locator(pylab.NullLocator())
    pyplot.savefig("test.png",
    bbox_inches='tight',
    transparent=True,
    pad_inches=0)


    and despite my efforts to have an image 1000 by 1600 I get one 775 by 1280. How do I make it the desired size? Thank you.

    UPDATE The presented solution works, except in my case I also had to manually set the axes limits. Otherwise, matplotlib could not figure out the "tight" bounding box.

    Continue reading...

Compartilhe esta Página