Использование библиотеки Matplotlib. Как рисовать графики вида y = f(x)
Эта заметка первая в серии коротких шпаргалок про использование библиотеки Matplotlib, поэтому начнем с самых простых примеров.
Следующий пример строит график функции f(x) = sin(x) / x:
# -*- coding: utf-8 -*-
import math
# !!! Импортируем один из пакетов Matplotlib
import matplotlib.pyplot as plt
import numpy as np
# Будем рисовать график этой функции
def func(x):
"""
sinc(x)
"""
return math.sin(x) / x if x != 0 else 1.0
if __name__ == '__main__':
# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0
# Количество отсчетов на заданном интервале
count = 200
# !!! Создадим список координат по оси X на отрезке [-xmin; xmax], включая концы
xlist = np.linspace(xmin, xmax, count)
# Вычислим значение функции в заданных точках
ylist = [func(x) for x in xlist]
# !!! Нарисуем одномерный график
plt.plot(xlist, ylist)
# !!! Покажем окно с нарисованным графиком
plt.show()
Если в качестве отсчетов по оси X используется последовательность 0, 1, 2, ..., len(ylist) - 1, то первый параметр можно опустить. Следующий пример это демонстрирует
График выглядит точно также с той лишь разницей, что координаты X отсчитываются от 0, а расстояние между точками считается равным 1.
# -*- coding: utf-8 -*-
import math
# !!! Импортируем один из пакетов Matplotlib
import matplotlib.pyplot as plt
import numpy as np
# Будем рисовать график этой функции
def func(x):
"""
sinc(x)
"""
return math.sin(x) / x if x != 0 else 1.0
if __name__ == '__main__':
# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0
# Количество отсчетов на заданном интервале
count = 200
# !!! Создадим список координат по оси X на отрезке [-xmin; xmax], включая концы
xlist = np.linspace(xmin, xmax, count)
# Вычислим значение функции в заданных точках
ylist = [func(x) for x in xlist]
# !!! Нарисуем одномерный график
plt.plot(ylist)
# !!! Покажем окно с нарисованным графиком
plt.show()
Если вызывать функцию plot() несколько раз подряд, то на график будут добавляться новые кривые. Следующий пример рисует два гарфика на одних осях:
# -*- coding: utf-8 -*-
import math
# !!! Импортируем один из пакетов Matplotlib
import matplotlib.pyplot as plt
import numpy as np
# Будем рисовать график этой функции
def func(x):
"""
sinc(x)
"""
return math.sin(x) / x if x != 0 else 1.0
if __name__ == '__main__':
# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0
# Количество отсчетов на заданном интервале
count = 200
# !!! Создадим список координат по оси X на отрезке [-xmin; xmax], включая концы
xlist = np.linspace(xmin, xmax, count)
# Вычислим значение функции в заданных точках
ylist1 = [func (x) for x in xlist]
ylist2 = [func (x * 0.2) for x in xlist]
# !!! Нарисуем одномерные графики
plt.plot (xlist, ylist1)
plt.plot (xlist, ylist2)
# !!! Покажем окно с нарисованным графиком
plt.show()
Результат работы этого скрипта выглядит следующим образом:
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.