Шаг 21.
Язык Python. Визуализация данных. Библиотека Matplotlib. ... Размещение графиков отдельно друг от друга. Работа с функцией subplot()

    На этом шаге мы рассмотрим механизм размещения графиков на отдельных полях.

    Самый простой способ вывести графики на отдельных полях - это использовать функцию subplot() для задания мест их размещения. До этого момента мы не работали с Фигурой (Figure) напрямую, значения ее параметров, задаваемые по умолчанию, нас устраивали. Для решения текущей задачи придётся один из параметров - размер подложки, задать вручную. За это отвечает аргумент figsize функции figure(), которому присваивается кортеж из двух float-элементов, определяющих высоту и ширину подложки.

    После задания размера указывается местоположение: куда будет установлено поле с графиком с помощью функции subplot().

    Доступны следующие варианты вызова subplot():

  1. subplot(nrows, ncols, index)
    nrows: int
    Количество строк.
    ncols: int
    Количество столбцов.
    index: int
    Местоположение элемента.

  2. subplot(pos)
    pos: int
    Позиция. Задаётся в виде трехзначного числа, содержащего информацию о количестве строк, столбцов и индексе, например, число 212 означает: подготовить разметку с двумя строками и одним столбцом, элемент вывести в первую позицию второй строки.

    Второй вариант можно использовать, если количество строк и столбцов сетки не более 10, в ином случае лучше обратиться к первому варианту.

    Рассмотрим на примере работу с данными функциями:

import matplotlib.pyplot as plt
# Исходный набор данных
x = [1, 5, 10, 15, 20]
y1 = [1, 7,	3, 5, 11]
y2 = [i * 1.2 + 1 for i in y1]
y3 = [i * 1.2 + 1 for i in y2]
y4 = [i * 1.2 + 1 for i in y3]
# Настройка размеров подложки
plt.figure(figsize=(12, 7))
# Вывод графиков
plt.subplot(2, 2, 1)
plt.plot(x, y1, '-')
plt.subplot(2, 2, 2)
plt.plot(x, y2, '--')
plt.subplot(2, 2, 3)
plt.plot(x, y3, '-.')
plt.subplot(2, 2, 4)
plt.plot(x, y4, ':')
plt.show()
Архив с файлом можно взять здесь.

    Результат работы приложения изображен на рисунке 1.


Рис.1. Размещение графиков на отдельных полях

    Решим эту же задачу, используя второй вариант вызова subplot():

import matplotlib.pyplot as plt
# Исходный набор данных
x = [1, 5, 10, 15, 20]
y1 = [1, 7,	3, 5, 11]
y2 = [i * 1.2 + 1 for i in y1]
y3 = [i * 1.2 + 1 for i in y2]
y4 = [i * 1.2 + 1 for i in y3]
# Настройка размеров подложки
plt.figure(figsize=(12, 7))
# Вывод графиков
plt.subplot(221)
plt.plot(x, y1, '-')
plt.subplot(222)
plt.plot(x, y2, '--')
plt.subplot(223)
plt.plot(x, y3, '-.')
plt.subplot(224)
plt.plot(x, y4, ':')
plt.show()
Архив с файлом можно взять здесь.

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

    На следующем шаге мы рассмотрим работу с функцией subplots().




Предыдущий шаг Содержание Следующий шаг