На этом шаге мы рассмотрим различные варианты такой заливки.
Для заливки областей используется функция fill_between(). Сигнатура функции:
fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, *, data=None, **kwargs)
Основные параметры функции:
Создадим набор данных для эксперимента и отобразим график с заливкой:
import matplotlib.pyplot as plt import numpy as np x = np.arange(0.0, 5, 0.01) y = np.cos(x * np.pi) plt.plot(x, y, c='r') plt.fill_between(x, y) plt.show()
Результат работы приложения изображен на рисунке 1.
Рис.1. График с заливкой (пример 1)
Изменим правила заливки:
import matplotlib.pyplot as plt import numpy as np x = np.arange(0.0, 5, 0.01) y = np.cos(x * np.pi) plt.plot(x, y, c='r') plt.fill_between(x, y, where=(y > 0.75) | (y < -0.75))
Результат работы приложения изображен на рисунке 2.
Рис.2. График с заливкой (пример 2)
Используя параметры y1 и y2, можно формировать более сложные решения. Заливка области между 0 и у при условии, что у >= 0:
import matplotlib.pyplot as plt import numpy as np x = np.arange(0.0, 5, 0.01) y = np.cos(x * np.pi) plt.plot(x, y, c='r') plt.fill_between(x, y, where=(y > 0)) plt.show()
Результат работы приложения изображен на рисунке 3.
Рис.3. График с заливкой (пример 3)
Заливка области между 0.5 и у при условии, что у >= 0.5:
import matplotlib.pyplot as plt import numpy as np x = np.arange(0.0, 5, 0.01) y = np.cos(x * np.pi) plt.plot(x, y, c='r') plt.grid() plt.fill_between(x, 0.5, y, where=y >= 0.5) plt.show()
Результат работы приложения изображен на рисунке 4.
Рис.4. График с заливкой (пример 4)
Заливка области между у и 1:
import matplotlib.pyplot as plt import numpy as np x = np.arange(0.0, 5, 0.01) y = np.cos(x * np.pi) plt.plot(x, y, c='r') plt.grid() plt.fill_between(x, y, 1) plt.show()
Результат работы приложения изображен на рисунке 5.
Рис.5. График с заливкой (пример 5)
Вариант двухцветной заливки:
import matplotlib.pyplot as plt import numpy as np x = np.arange(0.0, 5, 0.01) y = np.cos(x * np.pi) plt.plot(x, y, c='r') plt.grid() plt.fill_between(x, y, where=y >= 0, color='g', alpha=0.3) plt.fill_between(x, y, where=y <= 0, color='r', alpha=0.3) plt.show()
Результат работы приложения изображен на рисунке 6.
Рис.6. График с заливкой (пример 6)
На следующем шаге мы рассмотрим настройку маркировки графиков.