Matplotlib에 표시하지 않고 플롯을 이미지 파일로 저장하는 방법

Suraj Joshi 2023년1월30일
  1. 이미지를 저장하는 Matplotlib savefig()메소드
  2. matplotlib.pyplot.imsave()이미지 저장 방법
Matplotlib에 표시하지 않고 플롯을 이미지 파일로 저장하는 방법

savefig()imsave()메소드를 사용하여 Matplotlib에서 생성 된 플롯을 간단히 저장할 수 있습니다. 대화식 모드 인 경우 플롯이 표시 될 수 있습니다. 플롯의 표시를 피하기 위해close()ioff()메소드를 사용합니다.

이미지를 저장하는 Matplotlib savefig()메소드

matplotlib.pyplot.savefig()를 사용하여 Matplotlib에서 생성 된 플롯을 저장할 수 있습니다. 플롯을 저장해야하는savefig()에서 경로와 형식을 지정할 수 있습니다.

통사론:

matplotlib.pyplot.savefig(
    fname,
    dpi=None,
    facecolor="w",
    edgecolor="w",
    orientation="portrait",
    papertype=None,
    format=None,
    transparent=False,
    bbox_inches=None,
    pad_inches=0.1,
    frameon=None,
    metadata=None,
)

여기에서fname은 현재 디렉토리에 대한 경로에 상대적인 파일 이름을 나타냅니다.

대화식 모드로 표시하지 않고 플롯 저장

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.savefig("Plot generated using Matplotlib.png")

생성 된 플롯을 현재 작업 디렉토리에Plot generated using Matplotlib.png라는 이름으로 저장합니다.

png,jpg,svg,pdf 등의 다른 형식으로 플롯을 저장할 수도 있습니다. 마찬가지로, 이미지를 사용자 정의하는figsave()메소드의 다른 인수를 사용할 수 있습니다.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.savefig("Customed Plot.pdf", dpi=300, bbox_inches="tight")

작업 디렉토리에 플롯을 Customed Plot.pdf로 저장합니다. 여기서dpi=300은 저장된 이미지에서 인치당 300 도트를 나타내고bbox_inches='tight'는 출력 이미지 주위에 경계 상자를 나타내지 않습니다.

비 대화식 모드로 표시하지 않고 플롯 저장

그러나 대화식 모드 인 경우 항상 그림이 표시됩니다. 이를 피하기 위해close()ioff()메소드를 사용하여 플롯이 표시되지 않도록 Figure 창을 강제로 닫습니다. 대화식 모드는ion()메소드로 설정되어 있습니다.

close()메소드로 표시하지 마십시오

matplotlib.pyplot.close를 사용하여 그림 창을 닫을 수 있습니다.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(x)
fig = plt.figure()
plt.ion()
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.close(fig)
plt.savefig("Plot generated using Matplotlib.png")

ioff()메소드로 표시하지 마십시오

matplotlib.pyplot.ioff() 메소드를 사용하여 대화식 모드를 끌 수 있습니다. 이렇게하면 Figure가 표시되지 않습니다.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(x)
fig = plt.figure()
plt.ion()
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.ioff()
plt.savefig("Plot generated using Matplotlib.png")

matplotlib.pyplot.imsave()이미지 저장 방법

matplotlib.pyplot.imsave()을 사용하여 Matplotlib에서 이미지 파일로 배열을 저장할 수 있습니다.

import numpy as np
import matplotlib.pyplot as plt

image = np.random.randn(100, 100)
plt.imsave("new_1.png", image)
작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn