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

Как построить линейный график в python

  • автор:

Rukovodstvo

статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.

Линейный график Matplotlib — Учебное пособие и примеры

Введение Matplotlib — одна из наиболее широко используемых библиотек визуализации данных в Python. От простых до сложных визуализаций — это библиотека для большинства. В этом уроке мы рассмотрим, как построить линейный график в Matplotlib — одном из самых основных типов графиков. На линейных графиках числовые значения отображаются на одной оси, а категориальные значения — на другой. Обычно их можно использовать почти так же, как и гистограммы [/ matplotlib-bar-plot-tutorial-and-examples /], однако,

Время чтения: 5 мин.

Вступление

Matplotlib — одна из наиболее широко используемых библиотек визуализации данных в Python. От простых до сложных визуализаций — это библиотека для большинства.

В этом уроке мы рассмотрим, как построить линейный график в Matplotlib

  • одном из самых основных типов графиков.

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

Постройте линейный график в Matplotlib

Чтобы построить линейный график в Matplotlib, вы используете универсальную plot() из экземпляра PyPlot. Специальной функции lineplot() — общая автоматически строит графики с использованием линий или маркеров.

Давайте создадим собственный небольшой набор данных для работы:

В результате получается простой линейный график:

простой линейный графикmatplotlib

В качестве альтернативы мы могли бы полностью опустить x и просто нанести y . Это приведет к заполнению оси X range(len(y)) :

В результате получается такой же линейный график, как и раньше, поскольку значения x выводятся.

В результате получается такой же линейный график, как и раньше, поскольку значения x выводятся. Значения x , как предполагаемые, так и установленные нами вручную, как в первом примере, должны иметь ту же форму, что и y . Если y имеет 10 значений, x должен:

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

До сих пор мы имели дело с однородными x Посмотрим, что будет, если мы изменим раздачу:

Первая пара значений задает масштаб. И 1, 5, 3, 5, 7 , как обычно, отображаются на 1, 2, 3, 4, 5 . Однако, поскольку 20 прыгнули из ниоткуда, 8 нельзя просто сопоставить с ним напрямую.

Оси Х сохраняет свою равномерную шкалу, и добавляет кучу пропущенных значений от 5..20 , то он отображает 8 до 20 , в результате чего по прямой от 7..8 на Y-оси:

Постройте линейный график логарифмически в Matplotlib

Имея дело с наборами данных, которые имеют все большие числа, и особенно если их распределение склоняется к экспоненциальному, обычно строят линейный график в логарифмическом масштабе.

Вместо того, чтобы ось Y была равномерно линейной, это изменит каждый интервал, чтобы он был экспоненциально больше, чем последний.

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

Давайте воспользуемся Numpy, чтобы сгенерировать экспоненциальную функцию и построить ее линейно, как мы делали раньше:

Это создает массив, что это находится в длине 10, и содержит значение между 0..5 . Затем мы использовали exp() из Numpy для вычисления экспоненциальных значений этих элементов, что привело к экспоненциальной функции в линейном масштабе:

Такая функция, хотя и простая, трудна для понимания людьми, а небольшие изменения могут легко остаться незамеченными при работе с большими наборами данных.

Теперь давайте изменим масштаб оси Y на логарифмический:

Используя экземпляр PyPlot, plt , мы можем установить масштаб осей X и Y. Здесь мы установили ось Y в логарифмическом масштабе с помощью функции yscale() .

Здесь мы также могли использовать linear , log , logit и symlog . По умолчанию — linear .

Выполнение этого кода приводит к:

Настройка линейных графиков в Matplotlib

Вы можете легко настроить обычные линейные графики, передав аргументы функции plot() .

Обычно это такие аргументы, как linewidth , linestyle линии или color :

Вместо dashed , мы могли бы использовать, например, dotted или solid . Хотя мы также могли использовать специальные символы, такие как : — , — и -. :

Заключение

В этом руководстве мы рассмотрели несколько способов построения линейного графика с использованием Matplotlib и Python. Мы также рассмотрели, как построить график в логарифмическом масштабе, а также как настроить наши линейные графики.

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

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

. <.col-md-8 .col-xs-12 .my-auto>Станьте опасными с визуализацией данных

✅ 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.

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

3 функции Python Matplotlib: повысьте информативность визуализации данных

Roman

Визуализация является неотъемлемой частью науки о данных. Крайне важно использовать ее на всех этапах обработки данных — от исследовательского анализа до получения результатов.

Было бы сложно убедить других в своих выводах, просто показав цифры. Как правило, людей больше интересует общая картина, которую можно четко представить с помощью визуализации.

Python, как основной язык в экосистеме науки о данных, предлагает высокоэффективные библиотеки для визуализации данных. Одна из них — Matplotlib.

В этой статье мы рассмотрим 3 функции Matplotlib, которые позволяют настраивать графики, повышая их информативность и привлекательность.

В конечном счете, форма представления так же важна, как и содержимое.

Образцы наборов данных о продажах и скидках можно загрузить из репозитория Github. Вы можете использовать любой набор, а для этой статьи мы выберем sales_vs_discount.csv.

Начнем с импорта библиотек и чтения набора данных. Сначала создадим фрейм данных Pandas, прочитав csv-файл.

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

Примечание: при построении графика зависимости количества от времени лучше иметь информацию о времени с соответствующим типом данных. В данном файле типом данных столбца даты был “объект”. В первой строке он был изменен на “datetime” (“дата-время”).

Исходя из пиков ежедневных объемов продаж, можно предположить, что они вызваны скидками. Подтвердить это поможет построение визуализации, отражающей как суммы продаж, так и показатели скидок. Если линии, отображающие эти данные, совпадут, значит, предположение верно.

Построим их на одном графике, как показано ниже:

Помещаем суммы продаж и скидки в одну визуализацию. Однако такое изображение ни о чем не говорит. Дело в том, что диапазоны значений слишком разные. Скидки изменяются от 0 до 1, в то время как суммы продаж находятся на уровне тысяч.

Решить эту проблему можно, добавив вторичную ось.

Добавление вторичной оси y

Создать несколько осей, в частности добавить вторичную ось y, можно с помощью функции twinx .

Рассмотрим этот код построчно, чтобы понять, что происходит на каждом шагу.

  • Строка 1: создаем объект Figure и Axes (Фигура и Оси). Объект Figure выполняет роль контейнера для хранения всех частей изображения. Мы можем поместить несколько объектов Axes в Figure.
  • Строка 2: создаем второй объект Axes со вторичной осью y.
  • Строки 3–4: создаем линейные графики на объектах Axes.
  • Оставшаяся часть кода создает метки для оси y и настраивает диапазоны значений.

Сейчас график выглядит намного лучше. Мы ясно видим, как скидка положительно влияет на объемы продаж.

Xticks и yticks

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

  • Строка 1: создаем объект Figure . Размер изображения задается с помощью параметра figsize .
  • Строка 2: создаем линейный график.
  • Строка 3: изменяем размер шрифта xticks и поворачиваем его на 45 градусов.
  • Строка 4: меняем значения тиков. Теперь тик есть на каждой отметке 500, который раньше был только на отметках тысяч.
  • В последней строке добавляется метка для оси y.

Вот график, созданный приведенным выше фрагментом кода.

Примечание: вероятно, вы заметили, что в предыдущем примере мы использовали функцию set_ylabel . При работе с объектами Figure эти функции не начинаются с set , например ylabel , xlabel , ylim и так далее. Однако при выполнении настроек на объектах Axes эти функции начинаются с set , например set_ylabel , set_xlabel , set_ylim и так далее.

Создание сетки подграфиков в одном окне

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

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

Для создания сетки подграфиков можно использовать функцию subplots . Параметры nrows и ncols определяют количество подграфиков и их расположение.

Так, nrows=2 и ncols=2 создают сетку, которая выглядит следующим образом:

У нас будет два подграфика, расположенных друг над другом. Таким образом, нужно установить nrows=2 и ncols=1 .

Если ось x является общей, можно задать параметр sharex как true , чтобы ось x отображалась только внизу. В противном случае под каждым подграфиком будет ось x.

Функция tight_layout используется для создания пространства между подграфиками. Это предотвращает их наложение друг на друга.

Вот сетка из двух подграфиков.

Примечание: в этом примере мы явно определяем имена подграфиков, передавая их в кортеж.

  • (ax1, ax2)

Можно также определять подграфики с помощью индексов.

  • axs, axs[0], axs[1] и так далее.

Приведенный ниже код создает ту же визуализацию, что указана выше.

Заключение

Мы рассмотрели 3 различные возможности Matplotlib, которые позволяют делать визуализации более привлекательными и информативными.

Создавать и использовать визуализации данных очень важно. Но гораздо важнее сделать их понятными и лаконичными для других. Приведенные в этой статье примеры помогут вам в этом.

Библиотека Matplotlib для построения графиков

Разбираемся в том, как работает библиотека Matplotlib, и строим первые графики.

Иллюстрация: Оля Ежак для Skillbox Media

Антон Яценко

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

В этой статье научимся импортировать библиотеку и на примерах разберём основные способы визуализации данных.

Что такое Matplotlib и зачем она нужна

Библиотека Matplotlib — пакет для визуализации данных в Python, который позволяет работать с данными на нескольких уровнях:

  • с помощью модуля Pyplot, который рассматривает график как единое целое;
  • через объектно-ориентированный интерфейс, когда каждая фигура или её часть является отдельным объектом, — это позволяет выборочно менять их свойства и отображение.

В этой статье мы будем работать с модулем Pyplot, которого достаточно для построения графиков.

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

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

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

Как связаны Matplotlib, Pyplot и Pylab

При погружении в Matplotlib можно встретить упоминание двух модулей — Pyplot и Pylab. Важно понимать, какой из них использовать в работе и почему они появились. Разберёмся в терминологии.

Библиотека Matplotlib — это пакет для визуализации данных в Python. Pyplot — это модуль в пакете Matplotlib. Его вы часто будете видеть в коде как matplotlib.pyplot. Модуль помогает автоматически создавать оси, фигуры и другие компоненты, не задумываясь о том, как это происходит. Именно Pyplot используется в большинстве случаев.

Pylab — это ещё один модуль, который устанавливается вместе с пакетом Matplotlib. Он одновременно импортирует Pyplot и библиотеку NumPy для работы с массивами в интерактивном режиме или для доступа к функциям черчения при работе с данными.

Сейчас Pylab имеет только историческое значение — он облегчал переход с MATLAB на Matplotlib, так как позволял обходиться без операторов импорта (а именно так привыкли работать пользователи MATLAB). Вы можете встретиться с Pylab в примерах кода на разных сайтах, но на практике использовать модуль не придётся.

Установка и импорт библиотеки

Matplotlib — универсальная библиотека, которая работает в Python на Windows, macOS и Linux. При работе с Google Colab или Jupyter Notebook устанавливать Python и Matplotlib не понадобится — язык программирования и библиотека уже доступны «из коробки». Но если вы решили писать код в другой IDE, например в Visual Studio Code, то сначала установите Python, а затем библиотеку Learn через терминал:

Теперь можно переходить к импорту библиотеки:

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

Строим первый график в Matplotlib

Для начала создадим две переменные — x и y, которые будут содержать координаты точек по осям х и у:

Теперь построим график, который соединит эти точки:

Мы получили обычный линейный график. Разберём каждую команду:

  • plt.plot() — стандартная функция, которая строит график в соответствии со значениями, которые ей были переданы. Мы передали в неё координаты точек;
  • plt.show() — функция, которая отвечает за вывод визуализированных данных на экран. Её можно и не указывать, но тогда, помимо красивой картинки, мы увидим разную техническую информацию.

Дополним наш первый график заголовком и подписями осей:

Смотрим на результат:

С помощью Matplotlib можно настроить отображение любого графика. Например, мы можем изменить цвет линии, а также выделить точки, координаты которых задаём в переменных:

Теперь точки хорошо видны, а цвет точек и линии изменился на зелёный:

Подробно про настройку параметров функции plt.plot() можно прочесть в официальной документации.

Диаграмма рассеяния, или scatterplot

Диаграмма рассеяния используется для оценки взаимосвязи двух переменных, значения которых откладываются по разным осям. Для её построения используется функция plt.scatter(), аргументами которой выступают переменные с дискретными значениями:

Диаграмма рассеяния выглядит как множество отдельных точек:

Столбчатая диаграмма

Такой тип визуализации позволяет удобно сравнивать значения отдельных переменных. В столбчатой диаграмме длина столбцов пропорциональна показателям, которые они отображают. Как правило, одна из осей соответствует одной категории, а вторая — её дискретному значению.

Например, столбчатая диаграмма позволяет наглядно показать величину прибыли по месяцам. Построим следующий график:

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

Комбинируем разные варианты графиков

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

Теперь на одном экране мы видим сразу оба типа:

Всё получилось. Но сейчас линейный график видно плохо — он просто теряется на синем фоне столбцов. Увеличим прозрачность столбчатой диаграммы с помощью параметра alpha:

Параметр alpha может принимать значения от 0 до 1, где 0 — полная прозрачность, а 1 — отсутствие прозрачности. Посмотрим на результат:

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

Круговая диаграмма

Круговую диаграмму используют для отображения состава групп. Например, мы можем наглядно показать, какие марки автомобилей преобладают на дорогах города:

Так информация нагляднее, но непонятно, какая именно доля приходится на каждую марку автомобиля. Поэтому круговые диаграммы всегда лучше дополнять значениями в процентах. Отредактируем наш код, добавив к функции pie параметр autopct:

В параметр мы передаём формат отображения числа. В нашем случае это будет целое число с одним знаком после запятой. Запустим код и посмотрим на результат:

Теперь сравнить категории проще, так как мы видим числовые значения.

Сложные визуализации

Построим столбчатый график с накоплением. Он позволяет оценить динамику соотношения значений одной переменной. Попробуем показать, как соотносится количество устройств на Android и iOS в разные годы:

Смотрим на результат:

График позволяет увидеть, что соотношение устройств, работающих на Android и iOS, постепенно меняется — устройств на Android становится больше.

Что дальше?

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

Но если вы решили действительно углубиться в возможности библиотеки и визуализацию данных, то здесь помогут книги:

Линейный график Matplotlib – Учебник и примеры

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

  • Автор записи

Линейный график Matplotlib – Учебник и примеры

Вступление

Matplotlib – одна из наиболее широко используемых библиотек визуализации данных в Python. От простых до сложных визуализаций-это библиотека для большинства.

В этом уроке мы рассмотрим, как построить линейный график в Matplotlib – одном из самых основных типов графиков.

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

Постройте линейный график в Matplotlib

Для построения линейного графика в Matplotlib используется универсальная функция plot() из экземпляра PyPlot. Нет никакой конкретной функции lineplot () – общая функция автоматически строит графики с использованием линий или маркеров.

Давайте сделаем наш собственный небольшой набор данных для работы:

В результате получается простой линейный график:

В качестве альтернативы мы могли бы полностью опустить ось x и просто построить график y . Это приведет к тому, что ось X будет заполнена range(len(y)) :

Это приводит к почти такому же линейному графику, как и раньше, поскольку выводятся значения x .

Это приводит к почти такому же линейному графику, как и раньше, поскольку выводятся значения x . Значения x , выведенные или заданные нами вручную, как в первом примере, должны иметь ту же форму, что и y . Если y имеет 10 значений, то x тоже должен иметь:

Однако мы можем изменить это поведение и выйти за пределы этого диапазона, и в этом случае значения y будут сопоставлены с ними:

До сих пор мы имели дело с однородными значениями x . Давайте посмотрим, что произойдет, если мы изменим распределение:

Первая пара значений задает шкалу. И 1, 5, 3, 5, 7 они, как обычно, сопоставлены с 1, 2, 3, 4, 5 . Однако, поскольку 20 выскочил из ниоткуда, 8 не может быть просто сопоставлен с ним напрямую.

Ось X сохраняет свой равномерный масштаб и добавляет кучу пропущенных значений из 5..20 , а затем отображает 8 чтобы 20 , в результате чего получается прямая линия от 7..8 по оси Y:

Постройте линейный график логарифмически в Matplotlib

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

Вместо того чтобы ось Y была равномерно линейной, это приведет к тому, что каждый интервал будет экспоненциально больше предыдущего.

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

Давайте используем Numpy для генерации экспоненциальной функции и построим ее линейно, как мы делали это раньше:

Это создает массив длиной 10 и содержит значения между 0..5 . Затем мы использовали функцию exp() из Numpy для вычисления экспоненциальных значений этих элементов, что привело к экспоненциальной функции в линейном масштабе:

Такого рода функции, хотя и просты, трудно осмыслить, и небольшие изменения могут легко остаться незамеченными при работе с большими наборами данных.

Теперь давайте изменим масштаб оси Y на логарифмический:

Используя экземпляр PyPlot, plt , мы можем установить масштаб осей X и Y. Здесь мы установили ось Y в логарифмическом масштабе с помощью функции y scale () .

Здесь мы могли бы также использовать linear , log , logit и symlog . По умолчанию используется linear .

Запуск этого кода приводит к:

Настройка линейных графиков в Matplotlib

Вы можете легко настроить регулярные линейные графики, передав аргументы функции plot () .

Обычно это будут такие аргументы, как ширина линии , стиль линии или цвет :

Вместо значения dashed мы могли бы использовать, например, dotted или solid . Хотя мы могли бы также использовать специальные символы, такие как : , — , — и -. :

Вывод

В этом уроке мы рассмотрели несколько способов построения линейного графика с помощью Matplotlib и Python. Мы также рассмотрели, как строить графики в логарифмическом масштабе, а также как настроить наши линейные графики.

Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей связкой книг 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.

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

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

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