Як експортувати ділянки з matplotlib з прозорим фоном?


108

Я використовую matplotlib для створення деяких графіків, і, на жаль, не можу експортувати їх без білого тла.

зразок сюжету з суцільним білим тлом

Іншими словами, коли я експортую подібний сюжет і розміщую його поверх іншого зображення, білий фон приховує те, що знаходиться за ним, а не дозволяє йому показуватися наскрізь. Як я можу експортувати сюжети з прозорим фоном?

Відповіді:


177

Використовуйте функцію matplotlib savefigз аргументом ключового слова, transparent=Trueщоб зберегти зображення як png-файл.

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

Звичайно, цей сюжет не демонструє прозорості. Ось скріншот файлу PNG, який відображається за допомогою команди ImageMagick display. Шаблон шаблону - це фон, який видно через прозорі частини файлу PNG.

екран скріншот


2

Png-файли можуть працювати з прозорістю. Таким чином, ви можете використовувати це запитання Зберегти графік у файл зображення, а не відображати його за допомогою Matplotlib , щоб зберегти ваш графік як pngфайл.

Якщо ви хочете зробити всі білі пікселі прозорими, є ще одне питання: Використовуючи PIL, щоб зробити всі білі пікселі прозорими?

Якщо ви хочете перетворити всю область на прозору, то виникає таке питання: А потім використовуйте бібліотеку PIL, як у цьому питанні Python PIL: як зробити область прозорою у PNG? щоб зробити графік прозорим.


Дякую, але це не допомагає. Я знав, що png може бути прозорим, але вихід matplotlib - ні. Плюс ваша пропозиція охоплює лише той випадок, коли ви хочете видалити прямокутники. Я хочу, щоб мій сюжет був збережений, а мій фон був видалений.
Купітор

2
Наскільки я пам'ятаю, ви встановили, який прозорий колір у PNG. файл. Встановіть білий колір як колір прозорості і ви йдете.
Стефан Ролланд

Я вважаю, що 255 є білим, і коли я йду з ним, я втрачаю свою ділянку!
Купітор

це дивно. тільки ваші сюжети? графік у чорному та одиниці в чорній та синій кривій також?
Стефан Ролланд

1
є це питання про перетворення всіх білих пікселів на прозорість (не використовуючи маску, як я пов’язаний з вами) stackoverflow.com/questions/765736/…
Стефан Ролланд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.