Рубрики
Без рубрики

Сохранить сюжет как изображение с помощью Matplotlib

В этом уроке мы рассмотрим примеры того, как сохранить сюжет в виде изображения с помощью Matplotlib. Мы также настроим его, изменив цвет, DPI, установив прозрачность и т. Д.

Автор оригинала: David Landup.

Вступление

Matplotlib – одна из наиболее широко используемых библиотек визуализации данных в Python. Сюжеты и визуализации Matplotlib обычно делятся с другими, будь то в газетах или в Интернете.

В этой статье мы рассмотрим, как сохранить график/график в виде файла изображения с помощью Matplotlib .

Создание сюжета

Давайте сначала создадим простой сюжет:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.plot(x, y)
plt.show()

Здесь мы построили синусоидальную функцию, начиная с 0 и кончается на 10 с шагом 0.1 . Запуск этого кода дает:

синусоидальная визуализация python

Теперь давайте посмотрим, как мы можем сохранить эту фигуру в виде изображения.

Сохранить сюжет как изображение в Matplotlib

В предыдущем примере мы сгенерировали график с помощью функции plot () , передавая данные, которые мы хотели бы визуализировать.

Этот график генерируется, но не показывается нам, если мы не вызовем функцию show () . Функция show () , как следует из названия, показывает сгенерированный график пользователю в окне.

После создания мы также можем сохранить этот рисунок/график в виде файла – используя функцию savefig() :

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.plot(x, y)
plt.savefig('saved_figure.png')

Теперь, когда мы запускаем код, вместо всплывающего окна с сюжетом у нас есть файл ( saved_figure.png ) в каталоге вашего проекта.

Этот файл содержит точно такое же изображение, которое будет показано в окне:

сохранить сюжет в matplotlib

Стоит отметить, что функция savefig() не является уникальной для экземпляра plt . Вы также можете использовать его на объекте Figure :

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.plot(x, y)
fig.savefig('saved_figure.png')

Функция savefig() имеет обязательный аргумент filename . Здесь мы указали имя файла и формат.

Кроме того, он принимает другие параметры, такие как dpi , transparent , box_inches , quality и т. Д.

Мы рассмотрим некоторые популярные варианты в следующих разделах.

Настройка DPI изображения

Параметр DPI определяет количество точек (пикселей) на дюйм. Это, по сути, разрешение изображения, которое мы производим. Давайте протестируем несколько различных вариантов:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.plot(x, y)
fig.savefig('saved_figure-50pi.png', dpi = 50)
fig.savefig('saved_figure-100dpi.png', dpi = 100)
fig.savefig('saved_figure-1000dpi.png', dpi = 1000)

Это приводит к появлению трех новых файлов изображений на вашем локальном компьютере, каждый из которых имеет свой DPI:

сохранить сюжет в matplotlib с dpi

Значение по умолчанию равно 100 .

Сохраните прозрачное изображение с помощью Matplotlib

Аргумент transparent можно использовать для создания графика с прозрачным фоном. Это полезно, если вы будете использовать графическое изображение в презентации, на бумаге или хотите представить его в пользовательском дизайне:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.plot(x, y)
plt.savefig('saved_figure.png', transparent=True)

Если мы поместим это изображение на темный фон, это приведет к:

сохранить прозрачный график в matplotlib

Изменение Цвета Участка

Вы можете изменить цвет лица с помощью аргумента face color . Он принимает цвет и по умолчанию белый .

Давайте изменим его на красный :

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.plot(x, y)
plt.savefig('saved_figure-colored.png', facecolor = 'red')

Это приводит к:

изменение цвета сохраненного участка matplotlib

Установка Рамки Изображения

Аргумент box_inches принимает строку и указывает границу вокруг поля, которое мы строим. Если мы хотим установить его как tight , то есть обрезать вокруг коробки как можно больше, мы можем установить аргумент bbox_inches в 'tight' :

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.plot(x, y)
plt.savefig('saved_figure-tight.png', bbox_inches = 'tight', facecolor='red')

В результате получается плотно упакованная коробка. Это легче визуализировать, если мы покрасим лицо другим цветом для справки:

установите рамку изображения с помощью matplotlib

Вывод

В этом уроке мы рассмотрели несколько способов сохранения графика в виде файла изображения с помощью Matplotlib.

Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей связкой книг on :

Визуализация данных в Python с Matplotlib и Pandas – это книга, предназначенная для того, чтобы познакомить абсолютных новичков с Pandas и Matplotlib, обладающих базовыми знаниями Python, и позволить им создать прочную основу для продвинутой работы с библиотеками тезисов-от простых сюжетов до анимированных 3D-сюжетов с интерактивными кнопками.

Он служит углубленным руководством, которое научит вас всему, что вам нужно знать о пандах и Matplotlib, включая то, как создавать типы сюжетов, которые не встроены в саму библиотеку.

Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простую манипуляцию данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. Более конкретно, в течение 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.

Он служит уникальным практическим руководством по визуализации данных, в изобилии инструментов, которые вы могли бы использовать в своей карьере.