Автор оригинала: 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()
В результате получается простой линейный график:
В качестве альтернативы мы могли бы полностью опустить ось 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
тоже должен иметь:
Однако мы можем изменить это поведение и выйти за пределы этого диапазона, и в этом случае значения 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
. Давайте посмотрим, что произойдет, если мы изменим распределение:
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:
Постройте линейный график логарифмически в 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 для вычисления экспоненциальных значений этих элементов, что привело к экспоненциальной функции в линейном масштабе:
Такого рода функции, хотя и просты, трудно осмыслить, и небольшие изменения могут легко остаться незамеченными при работе с большими наборами данных.
Теперь давайте изменим масштаб оси 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
Вы можете легко настроить регулярные линейные графики, передав аргументы функции 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()
Это приводит к:
Вместо значения 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 и 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.
Он служит уникальным практическим руководством по визуализации данных, в изобилии инструментов, которые вы могли бы использовать в своей карьере.