На этом шаге мы рассмотрим задание различных способов маркировки.
На 44 шаге мы приводили пример работы с маркерами при отображении графиков. Сделаем это ещё раз, но уже в упрощённом виде:
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5, 6, 7] y = [7, 6, 5, 4, 5, 6, 7] plt.plot(x, y, marker='o', c='g') plt.show()
Результат работы приложения изображен на рисунке 1.
Рис.1. График с маркировкой
Создадим набор данных:
import numpy as np x = np.arange(0.0, 5, 0.01) у = np.cos(x * np.pi)
Количество точек в нем равно 500, поэтому представленный выше подход не применим: произойдёт наложение точек:
plt.plot(x, y, marker='o', c='g')
Результат работы приложения изображен на рисунке 2.
Рис.2. График с большим количеством маркеров
В этом случае нужно задать интервал отображения маркеров, для этого используется параметр markevery, который может принимать одно из следующих значений:
Ниже представлен пример, демонстрирующий работу с markevery:
import matplotlib.pyplot as plt import numpy as np x = np.arange(0.0, 5, 0.01) y = np.cos(x * np.pi) m_ev_case = [None, 10, (100, 30), slice(100, 400, 15), [0, 100, 200, 300], [10, 50, 100]] fig, ax = plt.subplots(2, 3, figsize=(10, 7)) axs = [ax[i, j] for i in range(2) for j in range(3)] for i, case in enumerate(m_ev_case): axs[i].set_title(str(case)) axs[i].plot(x, y, 'o', ls='-', ms=7, markevery=case) plt.show()
Результат работы приложения изображен на рисунке 3.
Рис.3. Различные варианты маркировки
На следующем шаге мы рассмотрим обрезку графика.