Как сохранить график в питоне
Перейти к содержимому

Как сохранить график в питоне

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

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

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

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

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

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

синус визуализацияPython

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

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

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

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

После создания мы также можем сохранить этот рисунок / график как файл

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 у нас есть файл (saved_figure.png) в каталоге нашего проекта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bbox_inches принимает строку и определяет границу вокруг прямоугольника, который мы строим. Если мы хотим сделать его tight , то есть максимально обрезать рамку, мы можем установить для аргумента bbox_inches ‘tight’ :

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

Заключение

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

Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в Python <.ebook-link>:

Визуализация данных в Python

. <.col-md-8 .col-xs-12 .my-auto>Ограниченная по времени скидка: 2 к 1, сэкономьте 50%!

✅ 30-дневная гарантия возврата денег без вопросов

✅ от начального до продвинутого

✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 г.)

✅ Обновлено с бонусными ресурсами и руководствами . . .

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

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

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

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

Визуализация данных Python 3 с помощью matplotlib

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

Визуализация – быстрый и простой способ сделать сложные данные понятными. Визуализация часто является обязательной частью анализа.

Данное руководство научит вас пользоваться 2D-библиотекой matplotlib. Она позволяет генерировать высококачественные линейные графики, гистограммы, столбчатые диаграммы, графики рассеяния и многое другое. Каждый тип графика предлагает новые возможности визуализации данных.

В руководстве речь пойдёт о визуализации данных Python с помощью matplotlib. В нём рассматриваются такие вопросы:

  • Создание графика рассеяния;
  • Добавление заголовка и легенды диаграммы;
  • Пользовательская настройка графиков.

Требования

Для выполнения руководства нужно настроить локальную среду разработки. Все необходимые инструкции можно найти по ссылкам:

1: Импорт matplotlib

Сначала нужно убедиться, что модуль matplotlib установлен. Для этого введите в командную строку:

python -c «import matplotlib»

Если модуль matplotlib уже установлен, команда будет выполнена успешно. Это значит, вы можете приступать к работе. В противном случае команда вернёт ошибку:

Traceback (most recent call last): File «<string>», line 1, in <module> ImportError: No module named ‘matplolib’

Это значит, вам нужно установить библиотеку с помощью pip:

pip install matplotlib

После этого нужно импортировать библиотеку в Python. Создайте сценарий (в руководстве он называется scatter.py) для импорта matplotlib. В руководстве будет использоваться только модуль pyplot; укажите это в сценарии:

import matplotlib.pyplot as plt

Чтобы ссылаться на модуль было удобнее, мы создали аббревиатуру plt.

2: Тестовые данные

Используйте сценарий scatter.py для создания тестовых данных. Для работы в 2D необходимы оси X и Y.

Предположим, владелец кофейни хочет установить отношение между среднестатистической погодой за год и общим количеством проданных чашек кофе со льдом. Пусть переменная X отображает общее количество чашек кофе со льдом за месяц, а Y – среднюю температуру за месяц (по Фаренгейту).

В сценарии Python создайте две переменные: X и Y. Каждый элемент в списке будет отображать данные за каждый месяц (с января по декабрь).

import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

3: Визуализация данных

Графики рассеяния отлично отображают отношения между двумя переменными. Чтобы создать график рассеяния с помощью matplotlib, используйте функцию scatter(). Функции необходимы два аргумента: значения координат X и Y.

import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250] Y = [32,36,39,52,61,72,77,75,68,57,48,48] plt.scatter(X,Y)
plt.show()

Чтобы создаваемый график отображался, нужно указывать в сценарии plt.show().

Убедитесь, что сценарий работает. Сохраните и запустите его:

На экране должен появиться график.

4: Добавление меток и заголовков

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

Его нужно вставить перед plt.show():

import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250] Y = [32,36,39,52,61,72,77,75,68,57,48,48] plt.scatter(X,Y)
plt.title(‘Relationship Between Temperature and Iced Coffee Sales’)
plt.show()

После plt.title добавьте метки для осей:

.
plt.xlabel(‘Cups of Iced Coffee Sold’)
plt.ylabel(‘Temperature in Fahrenheit’)
.

Сохраните и запустите сценарий. График станет более информативным.

5: Пользовательская настройка графика

При работе с уникальными наборами данных нужно кастомизировать график. Для этого библиотека matplotlib предлагает огромное множество функций, различные цвета, символы и т.п. Вы можете самостоятельно ознакомиться со всеми возможностями библиотеки. Для примера можно изменить параметры графика по умолчанию, назначив новые диапазоны осей:

import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250] Y = [32,36,39,52,61,72,77,75,68,57,48,48] plt.scatter(X,Y)
plt.xlim(0,1000)
plt.ylim(0,100)
plt.title(‘Relationship Between Temperature and Iced Coffee Sales’)
plt.show()
.

Точки на графике маленькие, отмеченные синим цветом. Это не всегда удобно. Вместо кружков можно использовать треугольники. Чтобы изменить цвет, размер или форму, вызовите функцию plt.scatter(). Попробуйте изменить такие параметры:

  • s: размер точки, по умолчанию =20.
  • c: цвет, последовательность, по умолчанию b.
  • marker: форма, по умолчанию круг (о).

Точка графика может иметь форму шестиугольника, звёздочки, треугольника и т.д. Также доступны различные цвета: синий, зелёный, красный, пурпурный и т.д. Для настройки цвета в HTML можно использовать числа в шестнадцатеричном коде.

Примечание: Списки маркеров и цветов можно найти в документации matplotlib.

Чтобы график было проще читать, увеличьте размер точки в три раза (s=60), смените стандартный синий на красный цвет(c=’r’), а форму точки на треугольник (marker=’^’).

plt.scatter(X, Y, s=60, c=’red’, marker=’^’ )

Убедитесь, что код не содержит ошибок. После обновления сценарий выглядит так:

import matplotlib.pyplot as plt
X = [590,540,740,130,810,300,320,230,470,620,770,250] Y = [32,36,39,52,61,72,77,75,68,57,48,48] #график рассеяния
plt.scatter(X, Y, s=60, c=’red’, marker=’^’)
#диапазон осей
plt.xlim(0,1000)
plt.ylim(0,100)
#заголовки
plt.title(‘Relationship Between Temperature and Iced Coffee Sales’)
#метки x и y
plt.xlabel(‘Cups of Iced Coffee Sold’)
plt.ylabel(‘Temperature in Fahrenheit’)
#отображение графика
plt.show()

6: Сохранение графика

Теперь запустите сценарий и просмотрите график с новыми настройками.

Чтобы сохранить график, нажмите кнопку save (значок диска, расположенный в нижней панели инструментов). Имейте в виду, что изображение будет сохранено в PNG.

Заключение

Теперь вы умеете визуализировать данные Python с помощью библиотеки matplotlib, устанавливать пользовательские настройки для графиков, добавлять заголовки.

matplotlib.pyplot.savefig#

The available output formats depend on the backend being used.

Parameters fname str or path-like or binary file-like

A path, or a Python file-like object, or possibly some backend-dependent object such as matplotlib.backends.backend_pdf.PdfPages .

If format is set, it determines the output format, and the file is saved as fname. Note that fname is used verbatim, and there is no attempt to make the extension, if any, of fname match format, and no extension is appended.

If format is not set, then the format is inferred from the extension of fname, if there is one. If format is not set and fname has no extension, then the file is saved with rcParams["savefig.format"] (default: ‘png’ ) and the appropriate extension is appended to fname.

Other Parameters dpi float or ‘figure’, default: rcParams["savefig.dpi"] (default: ‘figure’ )

The resolution in dots per inch. If ‘figure’, use the figure’s dpi value.

format str

The file format, e.g. ‘png’, ‘pdf’, ‘svg’, . The behavior when this is unset is documented under fname.

metadata dict, optional

Key/value pairs to store in the image metadata. The supported keys and defaults depend on the image format and backend:

‘png’ with Agg backend: See the parameter metadata of print_png .

‘pdf’ with pdf backend: See the parameter metadata of PdfPages .

‘svg’ with svg backend: See the parameter metadata of print_svg .

‘eps’ and ‘ps’ with PS backend: Only ‘Creator’ is supported.

Bounding box in inches: only the given portion of the figure is saved. If ‘tight’, try to figure out the tight bbox of the figure.

pad_inches float, default: rcParams["savefig.pad_inches"] (default: 0.1 )

Amount of padding around the figure when bbox_inches is ‘tight’.

facecolor color or ‘auto’, default: rcParams["savefig.facecolor"] (default: ‘auto’ )

The facecolor of the figure. If ‘auto’, use the current figure facecolor.

edgecolor color or ‘auto’, default: rcParams["savefig.edgecolor"] (default: ‘auto’ )

The edgecolor of the figure. If ‘auto’, use the current figure edgecolor.

backend str, optional

Use a non-default backend to render the file, e.g. to render a png file with the "cairo" backend rather than the default "agg", or a pdf file with the "pgf" backend rather than the default "pdf". Note that the default backend is normally sufficient. See The builtin backends for a list of valid backends for each file format. Custom backends can be referenced as "module://. ".

orientation

Currently only supported by the postscript backend.

papertype str

One of ‘letter’, ‘legal’, ‘executive’, ‘ledger’, ‘a0’ through ‘a10’, ‘b0’ through ‘b10’. Only supported for postscript output.

transparent bool

If True, the Axes patches will all be transparent; the Figure patch will also be transparent unless facecolor and/or edgecolor are specified via kwargs.

If False has no effect and the color of the Axes and Figure patches are unchanged (unless the Figure patch is specified via the facecolor and/or edgecolor keyword arguments in which case those colors are used).

The transparency of these patches will be restored to their original values upon exit of this function.

This is useful, for example, for displaying a plot on top of a colored background on a web page.

bbox_extra_artists list of Artist , optional

A list of extra artists that will be considered when the tight bbox is calculated.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *