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

  1. 이미지를 저장하는 Matplotlib savefig()메소드
  2. matplotlib.pyplot.imsave()이미지 저장 방법

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)