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

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

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

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

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

Вступление

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

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

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

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

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

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

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6]
y = [1, 5, 3, 5, 7, 8]

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

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

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

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

import matplotlib.pyplot as plt
y = [1, 5, 3, 5, 7, 8]

plt.plot(y)
plt.show()

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

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

вывод значения x matplotlib

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

import matplotlib.pyplot as plt
y = [1, 5, 3, 5, 7, 8]
x = [10, 20, 30, 40, 50, 60]

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

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

равномерные значения x matplotlib

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

import matplotlib.pyplot as plt
y = [1, 5, 3, 5, 7, 8]
x = [1, 2, 3, 4, 5, 20]

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

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

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

неоднородные значения x matplotlib

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

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

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

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

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

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 5, 10) # [0, 0.55, 1.11, 1.66, 2.22, 2.77, 3.33, 3.88, 4.44, 5]
y = np.exp(x)  # [1, 1.74, 3.03, 5.29, 9.22, 16.08, 28.03, 48.85, 85.15, 148.41]

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

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

постройте экспоненциальную функцию в matplotlib

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

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

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 5, 10)
y = np.exp(x)

plt.yscale('log')
plt.plot(x, y)
plt.show()

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

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

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

линейный график в логарифмическом масштабе matplotlib

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

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

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

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randint(low=1, high=10, size=25)

plt.plot(x, color = 'blue', linewidth=3, linestyle='dashed')
plt.show()

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

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

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

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randint(low=1, high=10, size=25)

plt.plot(x, color = 'blue', linewidth=3, linestyle='-.')
plt.show()

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

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

Есть много стилей линий .

Вывод

В этом уроке мы рассмотрели несколько способов построения линейного графика с помощью 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.

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