Plotting sine and cosine with Matplotlib and Python
Plotting is an essential skill for Engineers. Plots can reveal trends in data and outliers. Plots are a way to visually communicate results with your engineering team, supervisors and customers. In this post, we are going to plot a couple of trig functions using Python and matplotlib. Matplotlib is a plotting library that can produce line plots, bar graphs, histograms and many other types of plots using Python. Matplotlib is not included in the standard library. If you downloaded Python from python.org, you will need to install matplotlib and numpy with pip on the command line.
> pip install matplotlib > pip install numpy
If you are using the Anaconda distribution of Python (which is the distribution of Python I recommend for undergraduate engineers) matplotlib and numpy (plus a bunch of other libraries useful for engineers) are included. If you are using Anaconda, you do not need to install any additional packages to use matplotlib.
In this post, we are going to build a couple of plots which show the trig functions sine and cosine. We’ll start by importing matplotlib and numpy using the standard lines import matplotlib.pyplot as plt and import numpy as np . This means we can use the short alias plt and np when we call these two libraries. You could import numpy as wonderburger and use wonderburger.sin() to call the numpy sine function, but this would look funny to other engineers. The line import numpy as np has become a common convention and will look familiar to other engineers using Python. In case you are working in a Juypiter notebook, the %matplotlib inline command is also necessary to view the plots directly in the notebook.
import matplotlib.pyplot as plt import numpy as np # if using a jupyter notebook %matplotlib inline
Next we will build a set of x values from zero to 4π in increments of 0.1 radians to use in our plot. The x-values are stored in a numpy array. Numpy’s arange() function has three arguments: start, stop, step. We start at zero, stop at 4π and step by 0.1 radians. Then we define a variable y as the sine of x using numpy’s sin() function.
x = np.arange(0,4*np.pi,0.1) # start,stop,step y = np.sin(x)
Модуль math . Тригонометрические функции
Все тригонометрические функции оперируют радианами. Зависимость между радианами и градусами определяется по формуле:
Если известен угол в градусах, то для корректной работы тригонометрических функций, этот угол нужно преобразовать в радианы.
Например. Задан угол, имеющий n градусов. Найти арккосинус этого угла. В этом случае формула вычисления результата будет следующей:
. n_rad = n*3.1415/180 # получить угол в радианах ac = math.acos(n_rad) # вычислить арккосинус .
Чтобы получить более точное значение результата, в программе можно использовать константу math.pi , которая определяет число π. В этом случае текст программы будет иметь следующий вид
n_rad = n*math.pi/180 # получить угол в радианах ac = math.acos(n_rad) # вычислить арккосинус
2. Средства языка Python для конвертирования из градусов в радианы и наоборот. Функции math.degrees(x) и math.radians(x)
В языке Python существуют функции преобразования из градусов в радианы и, наоборот, из радиан в градусы.
Функция math.degrees(x) конвертирует значение параметра x из радиан в градусы.
Функция math.radians(x) конвертирует значение параметра x из градусов в радианы.
# Функция math.degrees(x) import math x = 1 # x - угол в радианах y = math.degrees(x) # y = 57.29577951308232 - угол в градусах x = math.pi # x = 3.1415. y = math.degrees(x) # y = 180.0 # Функция math.radians(x) x = 180.0/math.pi y = math.radians(x) # y = 1.0 x = 45 # x - угол в градусах y = math.radians(x) # y = 0.7853981633974483
3. Ограничения на использование тригонометрических функций
При использовании тригонометрических функций следует учитывать соответствующие ограничения, которые следуют из самой сущности этих функций. Например, не существует арксинуса из числа, которое больше 1.
Если при вызове функции задать неправильный аргумент, то интерпретатор выдаст соответствующее сообщение об ошибке
ValueError: math domain error
4. Функция math.acos(x) . Арккосинус угла
Функция acos(x) возвращает арккосинус угла x . Аргумент x задается в радианах и может быть как целым числом, так и вещественным числом.
# Функция math.acos(x) import math n = float(input('n = ')) # ввести n n_rad = n*math.pi/180 # получить угол в радианах ac = math.acos(n_rad) # вычислить арккосинус print('n_rad = ', n_rad) print('ac = ', ac)
Результат работы программы
n = 35 n_rad = 0.6108652381980153 ac = 0.913643357298706
5. Функция math.asin(x) . Арксинус
Функция math.asin(x) вычисляет арксинус угла от аргумента x . Значение аргумента x задается в радианах.
# Функция math.asin(x) import math n = 10 # n - угол в градусах # конвертировать из градусов в радианы n_rad = n*math.pi/180 # n_rad = 0.17453292519943295 # вычислить арксинус asn = math.asin(n_rad) # asn = 0.17543139267904395
6. Функция math.atan(x) . Арктангенс
Функция math.atan(x) возвращает арктангенс аргумента x, значение которого задается в радианах. При использовании функции важно помнить допустимые значения x , которые можно задавать при вычислении арктангенса.
# Функция math.atan(x) import math n = 60 # n - угол в градусах # конвертировать из градусов в радианы n_rad = n*math.pi/180 # n_rad = 1.0471975511965976 # вычислить арктангенс atn = math.atan(n_rad) # atn = 0.808448792630022
7. Функция math.atan2(x, y) . Арктангенс от x/y
Функция math.atan2(x, y) вычисляет арктангенс угла от деления x на y . Функция возвращает результат от —π до π. Аргументы x , y определяют координаты точки, через которую проходит отрезок от начала координат. В отличие от функции atan(x) , данная функция правильно вычисляет квадрант, влияющий на знак результата.
# Функция math.atan2(x,y) import math x = -2 y = -1 res = math.atan2(x, y) # res = -2.0344439357957027
8. Функция math.cos(x). Косинус угла
Функция math.cos(x) вычисляет косинус угла для аргумента x . Значение аргумента x задается в радианах.
# Функция math.cos(x) import math x = 0 y = math.cos(x) # y = 1.0 x = math.pi y = math.cos(x) # y = -1.0 x = 2 # 2 радианы y = math.cos(x) # y = -0.4161468365471424
9. Функция math.sin(x)
Функция math.sin(x) возвращает синус угла от аргумента x , заданного в радианах.
# Функция math.sin(x) import math x = math.pi y = math.sin(x) # y = 1.2246467991473532e-16 x = 0 y = math.sin(x) # y = 0.0 x = 2 # 2 радиана y = math.sin(x)
10. Функция math.hypot(x, y) . Евклидовая норма (Euclidean norm)
Функция возвращает Евклидовую норму, которая равна длине вектора от начала координат до точки x , y и определяется по формуле
# Функция math.hypot(x, y) import math x = 1.0 y = 1.0 z = math.hypot(x, y) # z = 1.4142135623730951 x = 3.0 y = 4.0 z = math.hypot(x, y) # z = 5.0
11. Функция math.tan(x) . Тангенс угла x
Функция math.tan(x) возвращает тангенс от аргумента x . Аргумент x задается в радианах.
# Функция math.tan(x, y) import math x = 1.0 y = math.tan(x) # y = 1.5574077246549023 x = 0.0 y = math.tan(x) # y = 0.0
Связанные темы
Модуль math
Модуль math – один из наиважнейших в Python. Этот модуль предоставляет обширный функционал для работы с числами.
math.ceil(X) – округление до ближайшего большего числа.
math.copysign(X, Y) — возвращает число, имеющее модуль такой же, как и у числа X, а знак — как у числа Y.
math.factorial(X) — факториал числа X.
math.floor(X) — округление вниз.
math.fmod(X, Y) — остаток от деления X на Y.
math.frexp(X) — возвращает мантиссу и экспоненту числа.
math.ldexp(X, I) — X * 2 i . Функция, обратная функции math.frexp().
math.fsum(последовательность) — сумма всех членов последовательности. Эквивалент встроенной функции sum(), но math.fsum() более точна для чисел с плавающей точкой.
math.isfinite(X) — является ли X числом.
math.isinf(X) — является ли X бесконечностью.
math.isnan(X) — является ли X NaN (Not a Number — не число).
math.modf(X) — возвращает дробную и целую часть числа X. Оба числа имеют тот же знак, что и X.
math.trunc(X) — усекает значение X до целого.
math.expm1(X) — e X — 1. При X → 0 точнее, чем math.exp(X)-1.
math.log(X, [base]) — логарифм X по основанию base. Если base не указан, вычисляется натуральный логарифм.
math.log1p(X) — натуральный логарифм (1 + X). При X → 0 точнее, чем math.log(1+X).
math.log10(X) — логарифм X по основанию 10.
math.log2(X) — логарифм X по основанию 2.
math.sqrt(X) — квадратный корень из X.
math.acos(X) — арккосинус X. В радианах.
math.asin(X) — арксинус X. В радианах.
math.atan(X) — арктангенс X. В радианах.
math.atan2(Y, X) — арктангенс Y/X. В радианах. С учетом четверти, в которой находится точка (X, Y).
math.cos(X) — косинус X (X указывается в радианах).
math.sin(X) — синус X (X указывается в радианах).
math.tan(X) — тангенс X (X указывается в радианах).
math.hypot(X, Y) — вычисляет гипотенузу треугольника с катетами X и Y (math.sqrt(x * x + y * y)).
math.degrees(X) — конвертирует радианы в градусы.
math.radians(X) — конвертирует градусы в радианы.
math.cosh(X) — вычисляет гиперболический косинус.
math.sinh(X) — вычисляет гиперболический синус.
math.tanh(X) — вычисляет гиперболический тангенс.
math.acosh(X) — вычисляет обратный гиперболический косинус.
math.asinh(X) — вычисляет обратный гиперболический синус.
math.atanh(X) — вычисляет обратный гиперболический тангенс.
math.erf(X) — функция ошибок.
math.erfc(X) — дополнительная функция ошибок (1 — math.erf(X)).
math.gamma(X) — гамма-функция X.
math.lgamma(X) — натуральный логарифм гамма-функции X.
math.pi — pi = 3,1415926.
Для вставки кода на Python в комментарий заключайте его в теги
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов