Совсем коротенькая шпаргалка про построение графиков на питоне, своего рода шаблон, который будет у меня в быстром доступе. Используется библиотека matplotlib, которая реализует все или почти все функции для построения графиков в стиле MatLab. Названия функций и аргументы очень похожи, но все же это Python, синтаксис тут гораздо приятнее, чем в матлабе.
Функция которую будем изображать
Для любого двумерного графика нужны точки, вектор значений X и вектор Y, значений прошедших через функцию. В зависимости от задачи это может быть сложнейшая математическая модель, либо, как в моем случае, простейшая функция.
1 2 |
def func(x): return [i**2 for i in x] |
Да, будем строить параболу! Для демонстрации вполне достаточно.
Строим график
Процесс построения заключается в инициализации целой горы полезных свойств будущего графика. Более подробное описание и примеры можно найти на официальном сайте. А я покажу самый базовый шаблон.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#coding=utf-8 import matplotlib.pyplot as plt # Функция для отображения def func(x): return [i**2 for i in x] if __name__ == '__main__': # Значения по X x = [i for i in range(-100, 100)] # Значения по Y y = func(x) plt.title("X^2 plot") plt.xlabel("X") plt.ylabel("Y") # представляем точки (х,у) кружочками диаметра 10 plt.scatter(x, y, edgecolors='r', s=10) # Сетка на фоне для улучшения восприятия plt.grid(True, linestyle='-', color='0.75') plt.show() |
Результат — график параболы из красных точек.
Точки смотрятся не круто, правда? И здесь в ход вступает, наверное, сама популярная функция — plot().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#coding=utf-8 import matplotlib.pyplot as plt # Функция для отображения def func(x): return [i**2 for i in x] if __name__ == '__main__': # Значения по X x = [i for i in range(-100, 100)] # Значения по Y y = func(x) plt.title("X^2 plot") plt.xlabel("X") plt.ylabel("Y") # представляем точки (х,у) кружочками диаметра 10 plt.plot(x, y, 'r') # Сетка на фоне для улучшения восприятия plt.grid(True, linestyle='-', color='0.75') plt.show() |
В результате получится вот такая красивая линия.
Вот и подошла к концу чисто житейская домашняя заметочка-шпаргалочка. Напоследок оставлю ссылку на огромную базу с описанием функций этой библиотеки.