Использование библиотеки Matplotlib. Как изменять размеры ячеек таблицы при расположении графиков в окне

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

Продолжим разбираться с новыми возможностями Matplotlib, появившимися в версии 1.0.0. В примере Использование класса GridSpec для расположения графиков мы уже разобрались с основами использования класса GridSpec, в этом примере посмотрим как с помощью этого класса сделать так, чтобы размеры ячеек для графиков были бы разных размеров. Причем, в данном случае речь будет идти не о том, что графики занимают несколько ячеек, регулирование размеров будет осуществляться именно за счет размеров ячеек.

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

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

import pylab
import matplotlib

def plotGraph ():
    # Будем рисовать график этой функции
    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 = matplotlib.mlab.frange (xmin, xmax, dx)

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

    pylab.plot (xlist, ylist)


# Создаем таблицу (сетку) с тремя строками и двумя столбцами
rows = 3
cols = 2

# При создании сетки появились два новых параметра:
# width_ratios - список соотношений ширин ячеек.
# В данном случае ширина второго столбца будет в 1.5 раза больше первого
# height_ratios - список соотношений высот ячеек
# В данном случае высота второй строки будет в 2 раза больше первого,
# а высота третьей строки будет в 3 раза больше первой (в 1.5 раза больше второй)
grid = matplotlib.gridspec.GridSpec(rows,
        cols,
        width_ratios=[1, 1.5],
        height_ratios=[1, 2, 3])

for n in range (rows * cols):
    pylab.subplot (grid[n])
    plotGraph()

pylab.show()

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

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

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

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




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