Шаг 39.
Язык Python. Визуализация данных. Библиотека Matplotlib. Цветовая полоса - colorbar. Общая настройка с использованием inset_locator()

    На этом шаге мы рассмотрим назначение этой функции.

    Один из вариантов более тонкой настройки цветовой полосы - это создать на базе родительского Axes элемента свой и модифицировать часть его параметров. Удобно сделать это с помощью функции inset_axes() из mpl_toolkits.axes_grid1.inset_locator. Основные ее аргументы перечислены в таблице 1.

Таблица 1. Параметры функции inset_axes()
Параметр Тип Описание
parent_axes Axes Родительский Axes объект
width float или str Ширина объекта. Задаётся в процентах от родительского объекта либо абсолютным значением в виде числа
height float или str Высота объекта. Задаётся в процентах от родительского объекта либо абсолютным значением в виде числа
loc int или string, optional, значение по умолчанию: 1 Расположение объекта. Принимает значение из набора:
'upper right': 1,
'upper left': 2,
'lower left': 3,
'lower right': 4,
'right': 5,
'center left': 6,
'center right': 7,
'lower center': 8,
'upper center': 9,
'center' : 10
bbox_to_anchor tuple или matplotlib.trans forms.BboxBase или optional Расположение и соотношение сторон объекта. Задаётся в формате (левый угол, нижний угол, ширина, высота), либо (левый угол, нижний угол)
bbox_transform matplotlib.trans forms.Transform или optional Трансформация объекта
borderpad float или optional Зазор между bbox_to_anchor и объектом

    Продемонстрируем работу с inset_axes() на примере:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1.inset_locator import inset_axes

np.random.seed(123)
vals = np.random.randint(11, size=(7, 7))
fig, ax = plt.subplots()
gr = ax.pcolor(vals)
axins = inset_axes(ax, width="7%", height="50%",
                   loc='lower left', bbox_to_anchor=(1.05, 0., 1, 1),
                   bbox_transform=ax.transAxes, borderpad=0)
plt.colorbar(gr, cax=axins)

plt.show()
Архив с файлом можно взять здесь.

    Результат работы приложения изображен на рисунке 1.


Рис.1. Цветовая полоса, построенная с использованием inset_axes()

    При необходимости можно модифицировать шкалу цветовой полосы с помощью объекта класса Tick.

    На следующем шаге мы продолжим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг