Використання бібліотеки matplotlib

У замітці Як намалювати кілька графіків в одному вікні описувалося, як можна малювати кілька незалежних графіків в одному вікні. На цей раз ми подивимося, як можна малювати графіки в різних вікнах.

Робиться це дуже просто. Досить перед виведенням чергового графіка викликати функцію figure () з пакету pylab і в якості параметра передати цілочисельний ідентифікатор вікна, в який ми хочемо помістити графік. Якщо вікна з таким ідентифікатором до цього не було, то воно створиться. Якщо ж вікно з таким ідентифікатором вже є, то воно стане "активним", і надалі всі функції малювання будуть застосовуватися вже до нього.

Розглянемо приклад, в якому ми по черзі додаємо графіки то в одне вікно, то в інше:

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

# Імпортуємо один з пакетів Matplotlib
import pylab

# Імпортуємо пакет з допоміжними функціями
from matplotlib import mlab

# Будемо малювати графік цієї функції
def func # 40; x # 41; :
"" "
sinc (x)
"" "
if x == 0:
return 1.0
return math. sin # 40; x # 41; / x

# Інтервал зміни змінної по осі X
xmin = - 20.0
xmax = 20.0

# Крок між точками
dx = 0.01

# Створимо список координат по Оісі X на відрізку [-xmin; xmax], включаючи кінці
xlist = mlab. frange # 40; xmin, xmax, dx # 41;

# Обчислимо значення функції в заданих точках
ylist1 = # 91; func # 40; x # 41; for x in xlist # 93;
ylist2 = # 91; func # 40; x * 0.2 # 41; for x in xlist # 93;
ylist3 = # 91; func # 40; x * 2 # 41; for x in xlist # 93;

#. Намалюємо графік в першому вікні
pylab. figure # 40; 1 # 41;
pylab. plot # 40; xlist, ylist1, label = "f (x)" # 41;

#. Намалюємо графік у другому вікні
pylab. figure # 40; 2 # 41;
pylab. plot # 40; xlist, ylist2, label = "f (x * 0.2)" # 41;
pylab. legend # 40; # 41;

#. Намалюємо ще один графік в першому вікні
pylab. figure # 40; 1 # 41;
pylab. plot # 40; xlist, ylist3, label = "f (x * 2)" # 41;
pylab. legend # 40; # 41;

# Покажемо вікна з намальованими графіками
pylab. show # 40; # 41;

В результаті у нас буде два вікна з наступним змістом: