График из точек python

Matplotlib. Урок 4.2. Визуализация данных. Ступенчатый, стековый, точечный график и другие

Follow us on Google Plus Follow us on rss

В этому уроке рассмотрим на примерах работу со ступенчатым, стековым, stem-графиком и точечным графиком.

Ступенчатый график

Рассмотрим еще одни график – ступенчатый. Такой график строится с помощью функции step() , которая принимает следующий набор параметров:

  • x: array_like
    • набор данных для оси абсцисс
    • набор данных для оси ординат
    • Задает отображение линии (см. функцию plot() ).
    • метки
    • Определяет место, где будет установлен шаг.
      • ‘pre’ : значение y ставится слева от значения x , т.е. значение y[i] определяется для интервала (x[i-1]; x[i]) .
      • ‘post’ : значение y ставится справа от значения x , т.е. значение y[i] определяется для интервала (x[i]; x[i+1]) .
      • ‘mid’ : значение y ставится в середине интервала.
      x = np.arange(0, 7) y = x where_set = ['pre', 'post', 'mid'] fig, axs = plt.subplots(1, 3, figsize=(15, 4)) for i, ax in enumerate(axs): ax.step(x, y, "g-o", where=where_set[i]) ax.grid()

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

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

      x = np.arange(0, 11, 1) y1 = np.array([(-0.2)*i**2+2*i for i in x]) y2 = np.array([(-0.4)*i**2+4*i for i in x]) y3 = np.array([2*i for i in x]) labels = ["y1", "y2", "y3"] fig, ax = plt.subplots() ax.stackplot(x, y1, y2, y3, labels=labels) ax.legend(loc='upper left')

      Верхний край области y2 определяется как сумма значений из наборов y1 и y2 , y3 – соответственно сумма y1 , y2 и y3 .

      Stem-график

      Визуально этот график выглядит как набор линий от точки с координатами ( x , y ) до базовой линии, в верхней точке ставится маркер:

      x = np.arange(0, 10.5, 0.5) y = np.array([(-0.2)*i**2+2*i for i in x]) plt.stem(x, y)

      Дополнительные параметры функции stem() :

      Реализуем пример, демонстрирующий работу с дополнительными параметрами:

      plt.stem(x, y, linefmt="r--", markerfmt="^", bottom=1)

      Точечный график

      Для отображения точечного графика предназначена функция scatter() . В простейшем виде точечный график можно получить передав функции scatter() наборы точек для x , y координат:

      x = np.arange(0, 10.5, 0.5) y = np.cos(x) plt.scatter(x, y)

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

      scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, plotnonfinite=False, data=None, **kwargs)

      Рассмотрим некоторые из параметров:

      Параметр Тип Описание
      x array_like, shape (n, ) Набор данных для оси абсцисс
      y array_like, shape (n, ) Набор данных для оси ординат
      s scalar или array_like, shape (n, ), optional Масштаб точек
      c color, sequence, или sequence of color, optional Цвет
      marker MarkerStyle , optional Стиль точки объекта
      cmap Colormap , optional, default: None Цветовая схема
      norm Normalize , optional, default: None Нормализация данных
      alpha scalar, optional, default: None Прозрачность
      linewidths scalar или array_like, optional, default: None Ширина границы маркера
      edgecolors или color или sequence of color, optional. Цвет границы

      Создадим решение, использующее расширенные параметры для настройки отображения графика:

      x = np.arange(0, 10.5, 0.5) y = np.cos(x) plt.scatter(x, y, s=80, c="r", marker="D", linewidths=2, edgecolors="g")

      Пример, демонстрирующий работу с цветом и размером:

      import matplotlib.colors as mcolors bc = mcolors.BASE_COLORS x = np.arange(0, 10.5, 0.25) y = np.cos(x) num_set = np.random.randint(1, len(mcolors.BASE_COLORS), len(x)) sizes = num_set * 35 colors = [list(bc.keys())[i] for i in num_set] plt.scatter(x, y, s=sizes, alpha=0.4, c=colors, linewidths=2, edgecolors="face") plt.plot(x, y, "g--", alpha=0.4)

      Статьи с описанием различных вариантов работы с точечными графиками

      P.S.

      Вводные уроки по “Линейной алгебре на Python” вы можете найти соответствующей странице нашего сайта . Все уроки по этой теме собраны в книге “Линейная алгебра на Python”.

      Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. Для начала вы можете познакомиться с вводными уроками. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.

      Matplotlib. Урок 4.2. Визуализация данных. Ступенчатый, стековый, точечный график и другие : 1 комментарий

      Источник

      Читайте также:  Vs code php сниппеты
Оцените статью