Использование библиотеки Matplotlib. Как отобразить легенду
Легендой называют табличку, в которой показано какой график какой линией нарисован. Чтобы показать легенду, нужно вызвать функцию legend() из пакета pylab. Есть несколько способов для добавления легенды.
Первый способ
В качестве параметра функции legend() нужно передать список или кортеж, содержащий столько элементов, сколько графиков нарисовано в рабочем окне. Элементов может быть и меньше, но в этом случае последние графики, на которых не хватит элементов кортежа или списка, останутся без подписей.
Следующий пример рисует два графика и к каждому из них добавляет описание в виде легенды.

# -*- 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, "b-")
pylab.plot (xlist, ylist2, "g--")
# !!! Добавим легенду.
# !!! Первому графику будет соответствовать надпись "f(x)",
# !!! А второму - "f(0.2 * x)"
pylab.legend ( ("f(x)", "f(0.2 * x)") )
# Покажем окно с нарисованным графиком
pylab.show()
Второй способ
Того же самого результата мы можем добиться, если при рисовании графиков будем использовать дополнительный параметр label, а затем вызовем функцию legend() без параметров.
# -*- 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, "b-", label = "f(x)")
pylab.plot (xlist, ylist2, "g--", label = "f(0.2 * x)")
# !!! Добавим легенду.
pylab.legend ()
# Покажем окно с нарисованным графиком
pylab.show()
Этот способ более удобен тем, что каждому графику сразу приписывается какая-то метка.
Заголовок легенды
В легенду можно добавить заголовок, для этого в функцию legend() надо передать дополнительный строковый параметр title со строкой заголовка.

# -*- 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, "b-", label = "f(x)")
pylab.plot (xlist, ylist2, "g--", label = "f(0.2 * x)")
# !!! Добавим легенду с заголовком
pylab.legend (title = "Sinc")
# Покажем окно с нарисованным графиком
pylab.show()
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.