Home  >  Article  >  Backend Development  >  How to Save a Matplotlib Figure with Specific Pixel Dimensions?

How to Save a Matplotlib Figure with Specific Pixel Dimensions?

DDD
DDDOriginal
2024-11-04 15:53:02417browse

How to Save a Matplotlib Figure with Specific Pixel Dimensions?

Saving a Figure with Exact Size in Pixels

While Matplotlib generally specifies figure sizes in inches and dots per inch (dpi), it is possible to save the contents of a figure to disk with an exact size in pixels.

Understanding DPI

The key to specifying pixel size is to determine the DPI of the intended display device. You can use online tools to detect your monitor's DPI.

Method

  1. Set Figure Size:

    <code class="python">fig = plt.figure(frameon=False)
    fig.set_size_inches((width / dpi, height / dpi))</code>
    • Replace width and height with the desired number of pixels.
    • Divide by dpi to convert pixels to inches.
  2. Remove Axes:

    <code class="python">ax = plt.Axes(fig, [0., 0., 1., 1.])
    ax.set_axis_off()
    fig.add_axes(ax)</code>
  3. Plot Image and Save:

    <code class="python">ax.imshow(im_np, aspect='normal')
    fig.savefig(some_path, dpi=dpi)</code>

Example

To save a figure of size 800x800 pixels on a monitor with a DPI of 96:

<code class="python">plt.figure(frameon=False)
fig.set_size_inches((800 / 96, 800 / 96))
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)
ax.imshow(im_np, aspect='normal')
fig.savefig(some_path, dpi=96)</code>

Resolution Control

To save the figure with a higher resolution, simply increase the dpi value when saving the figure:

<code class="python">fig.savefig(some_path, dpi=2 * dpi)  # For 2x the resolution</code>

Note: This method only works with certain backends, such as PNG.

The above is the detailed content of How to Save a Matplotlib Figure with Specific Pixel Dimensions?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn