DevGang
Авторизоваться

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

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. Выполнение этого кода дает:

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

Сохранить график как изображение в 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) в каталоге нашего проекта.

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

Стоит отметить, что функция 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, bbox_inches, quality и т.д.

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

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

Параметр 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:

Значение по умолчанию - 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)

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

Изменение цвета графика

Вы можете изменить цвет подложки, используя аргумент facecolor. Он принимает color и по умолчанию white.

Изменим его на red:

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')

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

Настройка границы изображения

Аргумент bbox_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.

Источник:

#Python #Data Visualization #Matplotlib
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться