Найти в Дзене
programmer's notes (python and more)

Программирование на языке python. Библиотека matplotlib. Простые графики

Оглавление

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Научные графические библиотеки для Python | programmer's notes (python and more) | Дзен
Библиотека NumPy | programmer's notes (python and more) | Дзен
Графика на Python | programmer's notes (python and more) | Дзен

Построение простого графика функции на matplotlib. Использование библиотеки NumPy

Приступаем к новой библиотеке, которая обычно используется для визуализации расчётов или просто данных: графиков функций, диаграмм. Удобная библиотека. Для большинства задач её использование очень простое и эффективное. Разумеется её можно использовать и в WEB-приложениях.

Устанавливается библиотека тривиально

pip3 install matplotlib

Для Windows используем pip

Библиотека подсоединяется стандартным способом с помощью команды

import matplotlib.pyplot as plt

Нам понадобятся пока всего две функции: plt.plot(x, y), котоаря создаёт график на основе массивов x и y. и функции plt.show(), которая создаёт окно с графиком (наличие графика обязательно). Предельно простая технология.

#!/usr/bin/python3
import matplotlib.pyplot as plt
import math
x, y = [0], []
a, b, n = 0, 20, 200
d = (b - a) / n
[x.append(a:=a+d) for i in range(n+1)]
[y.append(math.sin(x1)**2 + math.sqrt(x1)) for x1 in x]
plt.plot(x, y)
plt.show()

Результат см. рисунок 1

Пояснения к программе

С помощью двух генераторов мы создаём массив значений по оси x, а потом массив значений функции. Взята функция

sin(x)*sin(x) + sqrt(x)

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

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

Как мы видим (см. рисунок 1) у нас есть кнопка "сохранить", с помощью которой можно сохранить сам график в формате .png. Результат сохранения представлен на рисунке 2.

Рисунок 2. Результат полученный с помощью кнопки "сохранить"
Рисунок 2. Результат полученный с помощью кнопки "сохранить"

Другие кнопочки окна (см. Рисунок 1) я не обсуждаю, ну по-крайней мере, пока. Можно "поиграть" с ними самостоятельно.

А теперь тоже самое с использованием библиотеки NumPy

В библиотеке NumPy есть удобная функция numpy.linspace(). С помощью неё можно создать массив значений. Это удобно, когда вы строите график функции на заданном промежутке. В общем случае

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0, device=None)

  • start — начальное значение последовательности (начало отрезка);
  • stop — конец последовательности;
  • num — количество значений в массиве;
  • endpoint — если True (по умолчанию), то последнее значение stop включается в массив значений, если False, то нет;
  • dtype — тип выводимых в массив значений, если False, то тип совпадает с start и stop;
  • axis — используется если start и stop это массивы.
  • device — устройство, куда будет помещён полученный массив значений.

Программа, которая делает ровно тоже самое, что и первая программа, с использование NumPy будет гораздо проще (см. ниже).

#!/usr/bin/python3
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.0, 20.0, 200)
y = np.sin(x)*np.sin(x) + np.sqrt(x)
plt.plot(x, y)
plt.show()

Результат работы программы такой же, как и у программы первой.

Лишний раз подчеркну красоту и продуманность библиотеки NumPy.

Следующа статья

Ну, пока всё!

Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

- У меня есть данные, зачем мне ваши графики? - Во-первых, это красиво
- У меня есть данные, зачем мне ваши графики? - Во-первых, это красиво