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


108

일부 그래프를 만들기 위해 matplotlib를 사용하고 있으며 불행히도 흰색 배경 없이는 내보낼 수 없습니다.

단색 흰색 배경이있는 샘플 플롯

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

답변:


177

이미지를 png 파일로 저장하려면 savefig키워드 인수와 함께 matplotlib 함수를 사용하십시오 transparent=True.

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 display명령을 사용하여 표시되는 PNG 파일의 스크린 샷입니다 . 바둑판 패턴은 PNG 파일의 투명한 부분을 통해 보이는 배경입니다.

스크린 샷 표시


2

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

그리고 모든 흰색 픽셀을 투명하게 만들고 싶다면 다른 질문이 있습니다. PIL을 사용하여 모든 흰색 픽셀을 투명하게 만드나요?

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


고맙지 만 도움이되지 않습니다. 나는 png가 투명 할 수 있지만 matplotlib의 출력은 그렇지 않다는 것을 알고있었습니다. 또한 제안 사항은 직사각형을 제거하려는 경우에만 적용됩니다. 플롯을 저장하고 배경을 제거하고 싶습니다.
Cupitor 2013

2
내가 기억하는 한 png의 투명한 색상을 설정했습니다. 파일. 흰색을 투명도 색상으로 설정하면됩니다.
Stephane Rolland

나는 255가 흰색이라고 생각하고 그것을 가지고 가면 내 플롯을 잃어 버립니다!
Cupitor 2013

이상합니다. 당신의 플롯 만? 검은 색의 그래프와 검은 색의 단위와 파란색 곡선도?
Stephane Rolland

1
(나는 당신에 링크처럼 마스크를 사용하지 않는) 투명성에 모두 흰색 픽셀을 회전에 대한이 질문에있다 stackoverflow.com/questions/765736/...
스테판 롤랑
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.