Построение диаграмм с стрелками с использованием Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Введение

Matplotlib - это мощная библиотека для построения графиков в Python. Она предоставляет различные настраиваемые визуализации, такие как линейные графики, точечные диаграммы, столбчатые диаграммы, гистограммы и многие другие. Одной из визуализаций, предоставляемых Matplotlib, является диаграмма с стрелками. Диаграммы с стрелками используются для кодирования "сила" стрелки, такой как вероятности переходов в марковской модели, с использованием длины стрелки, ширины или альфа (прозрачности).

В этом практическом занятии мы научимся создавать диаграммы с стрелками с использованием Matplotlib. Мы будем использовать функцию make_arrow_graph() для построения диаграммы с стрелками.

Советы по работе с ВМ

После запуска виртуальной машины кликните в левом верхнем углу, чтобы переключиться на вкладку Ноутбук, чтобы получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импортируем библиотеки и определяем функцию

Первым шагом является импорт необходимых библиотек и определение функции make_arrow_graph(). Эта функция принимает различные параметры, такие как оси, данные, размер, отображение, форма, максимальная ширина стрелки, расстояние между стрелками, альфа, нормализация данных, цвет контура, цвет метки и дополнительные именованные аргументы. Она использует эти параметры для создания диаграммы с стрелками.

## Import libraries
import itertools
import matplotlib.pyplot as plt
import numpy as np

## Define the function
def make_arrow_graph(ax, data, size=4, display='length', shape='right',
                     max_arrow_width=0.03, arrow_sep=0.02, alpha=0.5,
                     normalize_data=False, ec=None, labelcolor=None,
                     **kwargs):
    """
    Создает диаграмму с стрелками.

    Параметры
    ----------
    ax
        Оси, на которых рисуется график.
    data
        Словарь с вероятностями для оснований и переходов пар.
    size
        Размер графика в дюймах.
    display : {'length', 'width', 'alpha'}
        Свойство стрелки, которое меняется.
    shape : {'full', 'left', 'right'}
        Для полных или полустрелок.
    max_arrow_width : float
        Максимальная ширина стрелки в координатах данных.
    arrow_sep : float
        Расстояние между стрелками в паре в координатах данных.
    alpha : float
        Максимальная прозрачность стрелок.
    **kwargs
        Свойства `.FancyArrow`, например *linewidth* или *edgecolor*.
    """

    ## code block

Определяем данные и строим диаграмму с стрелками

Вторым шагом является определение данных и построение диаграммы с стрелками с использованием функции make_arrow_graph(). Мы определим данные в виде словаря с вероятностями для оснований и переходов пар. Также мы установим размер графика равным 4 и нормализуем данные.

## Define the data
data = {
    'A': 0.4, 'T': 0.3, 'G': 0.6, 'C': 0.2,
    'AT': 0.4, 'AC': 0.3, 'AG': 0.2,
    'TA': 0.2, 'TC': 0.3, 'TG': 0.4,
    'CT': 0.2, 'CG': 0.3, 'CA': 0.2,
    'GA': 0.1, 'GT': 0.4, 'GC': 0.1,
}

## Plot the arrow graph
size = 4
fig = plt.figure(figsize=(3 * size, size), layout="constrained")
axs = fig.subplot_mosaic([["length", "width", "alpha"]])

for display, ax in axs.items():
    make_arrow_graph(
        ax, data, display=display, linewidth=0.001, edgecolor=None,
        normalize_data=True, size=size)

plt.show()

Настраиваем диаграмму с стрелками

Третий шаг - настройка диаграммы с стрелками. Мы можем изменить свойство стрелки для отображения с использованием параметра display. Также мы можем изменить форму стрелки с использованием параметра shape. Мы можем настроить ширину и расстояние между стрелками с использованием параметров max_arrow_width и arrow_sep соответственно. Мы можем изменить прозрачность стрелок с использованием параметра alpha. Мы также можем изменить цвет метки с использованием параметра labelcolor.

## Plot the arrow graph with customizations
size = 4
fig = plt.figure(figsize=(3 * size, size), layout="constrained")
axs = fig.subplot_mosaic([["length", "width", "alpha"]])

for display, ax in axs.items():
    make_arrow_graph(
        ax, data, display=display, linewidth=0.001, edgecolor=None,
        normalize_data=True, size=size, shape='full', max_arrow_width=0.05,
        arrow_sep=0.03, alpha=0.7, labelcolor='white')

plt.show()

Интерпретируем диаграмму с стрелками

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

Резюме

В этом практическом занятии мы узнали, как создавать диаграммы с стрелками с использованием Matplotlib. Мы использовали функцию make_arrow_graph() для построения диаграммы с стрелками. Мы настроили диаграмму с стрелками, изменив свойство стрелки для отображения, форму стрелки, ширину и расстояние между стрелками, прозрачность стрелок и цвет метки. Мы также интерпретировали диаграмму с стрелками, понимая, что длина, ширина и прозрачность стрелок представляют силу стрелки, а метки на стрелках представляют вероятности для оснований и переходов пар.