Использование библиотеки Matplotlib. Как рисовать графики в разных окнах

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

В заметке Как нарисовать несколько графиков в одном окне описывалось, как можно рисовать несколько независимых графиков в одном окне. На этот раз мы посмотрим, как можно рисовать графики в разных окнах.

Делается это очень просто. Достаточно перед выводом очередного графика вызвать функцию figure() из пакета pylab и в качестве параметра передать целочисленный идентификатор окна, в который мы хотим поместить график. Если окна с таким идентификатором до этого не было, то оно создастся. Если же окно с таким идентификатором уже есть, то оно станет "активным", и в дальнейшем все функции рисования будут применяться уже к нему.

Рассмотрим пример, в котором мы поочередно добавляем графики то в одно окно, то в другое:

#!/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]
ylist3 = [func (x * 2) for x in xlist]

# !!! Нарисуем график в первом окне
pylab.figure (1)
pylab.plot (xlist, ylist1, label = "f(x)")

# !!! Нарисуем график во втором окне
pylab.figure(2)
pylab.plot (xlist, ylist2, label = "f(x * 0.2)")
pylab.legend()

# !!! Нарисуем еще один график в первом окне
pylab.figure (1)
pylab.plot (xlist, ylist3, label = "f(x * 2)")
pylab.legend()

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

В результате у нас будет два окна со следующим содержимым:

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

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

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

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




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