Использование библиотеки Matplotlib. Как рисовать графики вида y = f(x)

Немного рекламы

Эта заметка первая в серии коротких шпаргалок про использовавание библиотеки Matplotlib, поэтому начнем с самых простых примеров.

Следующий пример строит график функции f(x) = sin(x) / x:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import math

# !!! Импортируем один из пакетов Matplotlib
import pylab

# !!! Импортируем пакет со вспомогательными функциями
from matplotlib import mlab

# Будем рисовать график этой функции
def func (x):
    """
    sinc (x)
    """

    if x == 0:
        return 1.0
    return math.sin (x) / x

# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0

# Шаг между точками
dx = 0.01

# !!! Создадим список координат по оси X на отрезке [-xmin; xmax], включая концы
xlist = mlab.frange (xmin, xmax, dx)

# Вычислим значение функции в заданных точках
ylist = [func (x) for x in xlist]

# !!! Нарисуем одномерный график
pylab.plot (xlist, ylist)

# !!! Покажем окно с нарисованным графиком
pylab.show()

Если в качестве отсчетов по оси X используется последовательность 0, 1, 2, ..., len(ylist) - 1, то первый параметр можно опустить. Следующий пример это демонстрирует

График выглядит точно также с той лишь разницей, что координаты X отсчитываются от 0, а расстояние между точками считается равным 1.

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import math

# !!! Импортируем один из пакетов Matplotlib
import pylab

# !!! Импортируем пакет со вспомогательными функциями
from matplotlib import mlab

# Будем рисовать график этой функции
def func (x):
    """
    sinc (x)
    """

    if x == 0:
        return 1.0
    return math.sin (x) / x

# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0

# Шаг между точками
dx = 0.01

# !!! Создадим список координат по оиси X на отрезке [-xmin; xmax], включая концы
xlist = mlab.frange (xmin, xmax, dx)

# Вычислим значение функции в заданных точках
ylist = [func (x) for x in xlist]

# !!! Нарисуем одномерный график
pylab.plot (ylist)

# !!! Покажем окно с нарисованным графиком
pylab.show()

Если вызывать функцию plot() несколько раз подряд, то на график будут добавляться новые кривые. Следующий пример рисует два гарфика на одних осях:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import math

# !!! Импортируем один из пакетов Matplotlib
import pylab

# !!! Импортируем пакет со вспомогательными функциями
from matplotlib import mlab

# Будем рисовать график этой функции
def func (x):
    """
    sinc (x)
    """

    if x == 0:
        return 1.0
    return math.sin (x) / x

# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0

# Шаг между точками
dx = 0.01

# !!! Создадим список координат по оиси X на отрезке [-xmin; xmax], включая концы
xlist = mlab.frange (xmin, xmax, dx)

# Вычислим значение функции в заданных точках
ylist1 = [func (x) for x in xlist]
ylist2 = [func (x * 0.2) for x in xlist]

# !!! Нарисуем одномерные графики
pylab.plot (xlist, ylist1)
pylab.plot (xlist, ylist2)

# !!! Покажем окно с нарисованным графиком
pylab.show()

Результат работы этого скрипта выглядит следующим образом:

Остальные примеры

Немного рекламы

Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
4.5 stars

Рейтинг 4.2/5. Всего 51 голос(а, ов)



 20.11.2011 - 22:52

shrieking smileyshrieking smileyshrieking smileyshrieking smileyshrieking smiley

Light 13.11.2014 - 09:00

Небольшая ошибка

В начале статьи написано
Следующий пример строит график функции f(x) = x / sin(x):
Однако, в коде наоборот
return math.sin (x) / x

В остальном - отличная статья, помогает освоить язык, спасибо!

Jenyay 13.11.2014 - 10:19

Спасибо, поправил.


Подписаться на комментарии
Автор:
Тема:
 Ваш комментарий
 
 
Введите код 606
 

 06.04.2010 - 22:19

Спасибо!