Как экспортировать графики из matplotlib с прозрачным фоном?
Я использую matplotlib для создания некоторых графиков, и, к сожалению, я не могу экспортировать их без белого фона.
![sample plot with solid white background]()
Другими словами, когда я экспортирую такой сюжет и позиционирую его поверх другого изображения, белый фон скрывает то, что стоит за ним, а не позволяет ему показывать. Как я могу экспортировать графики с прозрачным фоном?
Ответы
Ответ 1
Используйте функцию 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.
![display screenshot]()
Ответ 2
Файлы Png могут обрабатывать прозрачность.
Таким образом, вы можете использовать этот вопрос Сохранить график в файл изображения вместо отображения его с помощью Matplotlib, чтобы сохранить график в виде файла png
.
И если вы хотите, чтобы весь белый пиксель был прозрачным, есть еще один вопрос: Использование PIL для прозрачности всех белых пикселей?
Если вы хотите превратить всю область в прозрачную, то есть этот вопрос: а затем используйте библиотеку PIL, как в этом вопросе Python PIL: как сделать область прозрачной в PNG?, чтобы сделать ваш график прозрачным.