source

배경이 투명한 matplotlib에서 플롯을 내보내는 방법은 무엇입니까?

nicesource 2023. 7. 3. 22:57
반응형

배경이 투명한 matplotlib에서 플롯을 내보내는 방법은 무엇입니까?

저는 matplotlib을 사용하여 그래프를 만들고 있는데 안타깝게도 흰색 배경 없이는 내보낼 수 없습니다.

sample plot with solid white background

다시 말해, 제가 이와 같은 플롯을 내보내고 다른 이미지 위에 배치하면, 흰색 배경은 그 배경을 보여주는 것이 아니라 그 배경 뒤에 있는 것을 숨깁니다.대신 배경이 투명한 플롯을 내보내려면 어떻게 해야 합니까?

matplotlib 사용savefig키워드 인수를 사용한 함수transparent=True이미지를 png 파일로 저장합니다.

In [28]: import numpy as np

In [29]: from matplotlib.pyplot import plot, savefig

In [30]: x = np.linspace(0,6,31)

In [31]: y = np.exp(-0.5*x) * np.sin(x)

In [32]: plot(x, y, 'bo-')
Out[32]: [<matplotlib.lines.Line2D at 0x3f29750>]            

In [33]: savefig('demo.png', transparent=True)

결과:demo.png

물론, 그 줄거리는 투명성을 보여주지 않습니다.다음은 ImageMagick을 사용하여 표시된 PNG 파일의 스크린샷입니다.display지휘권체커보드 패턴은 PNG 파일의 투명한 부분을 통해 볼 수 있는 배경입니다.

display screenshot

PNG 파일은 투명성을 처리할 수 있습니다.따라서 이 질문을 사용하여 Matplotlib을 사용하여 표시하는 대신 이미지 파일에 플롯 저장을 사용하여 그래프를 저장할 수 있습니다.png파일.

그리고 만약 여러분이 모든 흰색 픽셀을 투명하게 바꾸고 싶다면, 또 다른 질문이 있습니다: 모든 흰색 픽셀을 투명하게 만들기 위해 PIL을 사용하는 것?

전체 영역을 투명하게 전환하려면 다음과 같은 질문이 있습니다.그런 다음 Python PIL: 그래프를 투명하게 만들기 위해 PNG에서 영역을 투명하게 만드는 방법과 같은 PIL 라이브러리를 사용합니다.

plt.savefig()는 plt.show() 앞에 작성해야 합니다. 그렇지 않으면 투명 영상이 생성됩니다(실제 플롯 없음).

고품질 이미지의 경우:

plt.savefig('filename.png', format='png', dpi='600', transparent=True)
plt.show()

언급URL : https://stackoverflow.com/questions/15857647/how-to-export-plots-from-matplotlib-with-transparent-background

반응형