Matplotlib: Создание графиков с двумя списками условных обозначений – Полное руководство

Matplotlib – мощная библиотека Python для визуализации данных. Иногда возникает необходимость представить данные с использованием двух различных наборов условных обозначений (легенд) на одном графике. Это может быть полезно, когда вы хотите разделить данные на группы и выделить разные аспекты каждого набора данных. Эта статья предоставит вам полное руководство по созданию графиков с двумя списками условных обозначений в Matplotlib (matplotlib — две легенды). Мы рассмотрим различные методы и примеры кода, чтобы вы могли эффективно визуализировать свои данные (matplotlib — разные обозначения на графике).

Основы работы с легендами в Matplotlib

Обзор стандартной функции legend()

Функция legend() является основным инструментом для добавления условных обозначений к графикам Matplotlib. Она автоматически создает легенду на основе подписей (label), присвоенных графическим элементам (линиям, столбцам, точкам) при их создании. matplotlib plot legend позволяет легко интегрировать пояснения.

Настройка базовых параметров легенды (размещение, стиль)

legend() предлагает множество параметров для настройки внешнего вида и положения легенды.

  • loc: Определяет местоположение легенды (например, ‘upper right’, ‘lower left’, ‘best’).

  • fontsize: Управляет размером шрифта.

  • ncol: Задает количество столбцов в легенде.

  • frameon: Включает или отключает рамку вокруг легенды.

  • title: Добавляет заголовок к легенде.

Пример:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3], [4, 5, 6], label='Линия 1')
plt.plot([1, 2, 3], [1, 2, 3], label='Линия 2')
plt.legend(loc='upper left', fontsize='small', frameon=False)
plt.show()

Подготовка данных для двух легенд

Разделение данных на две группы для разных легенд

Ключевым шагом является разделение данных на логические группы, которые будут представлены разными легендами (matplotlib separate legends). Это может быть достигнуто путем создания отдельных наборов данных или использования условной логики для разделения существующих данных.

Примеры: создание разных наборов данных для графиков

Рассмотрим пример с двумя наборами данных о продажах продукции A и B в разных регионах:

import numpy as np

region_1_sales_A = np.array([10, 15, 13, 18])
region_1_sales_B = np.array([8, 12, 10, 15])
region_2_sales_A = np.array([12, 17, 15, 20])
region_2_sales_B = np.array([9, 13, 11, 16])

Здесь region_1_sales_A и region_1_sales_B представляют продажи продукции A и B в регионе 1, а region_2_sales_A и region_2_sales_B – в регионе 2. Эти данные можно визуализировать с двумя легендами: одна для продукции (A и B), а другая – для регионов (1 и 2). (matplotlib — условные знаки для двух наборов данных)

Реализация двух легенд: методы и примеры

Использование нескольких вызовов plot() и управление handles и labels

Чтобы создать две легенды, можно использовать несколько вызовов plot() и затем вручную управлять handles (объекты графики) и labels (подписи) для каждой легенды.

import matplotlib.pyplot as plt

# Данные
x = [1, 2, 3, 4]
y1 = [5, 6, 7, 8]
y2 = [2, 3, 4, 5]
z1 = [7, 8, 9, 10]
z2 = [4, 5, 6, 7]

# Графики с подписями
line1, = plt.plot(x, y1, label='Группа 1 - Линия 1')
line2, = plt.plot(x, y2, label='Группа 1 - Линия 2')
line3, = plt.plot(x, z1, label='Группа 2 - Линия 1')
line4, = plt.plot(x, z2, label='Группа 2 - Линия 2')

# Создание первой легенды
first_legend = plt.legend(handles=[line1, line2], loc='upper left')

# Добавление первой легенды на график
ax = plt.gca().add_artist(first_legend)

# Создание второй легенды
plt.legend(handles=[line3, line4], loc='lower right')

plt.show()
Реклама

В этом примере создаются четыре линии, а затем две легенды, каждая со своим набором линий. Первая легенда добавляется с помощью add_artist, чтобы она не была перезаписана второй легендой. (matplotlib — создание двух списков легенд)

Создание пользовательских условных обозначений и легенд

Если вам требуется более гибкий контроль над легендами, можно создавать пользовательские условные обозначения, используя matplotlib.patches.Patch и matplotlib.lines.Line2D.

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.lines as mlines

# Создание пользовательских элементов легенды
red_patch = mpatches.Patch(color='red', label='Красный цвет')
blue_line = mlines.Line2D([], [], color='blue', marker='*', label='Синяя линия')

# Создание легенды
plt.legend(handles=[red_patch, blue_line], loc='best')

plt.show()

Работа с различными типами графиков и дополнительные возможности

Примеры для линейных, столбчатых и точечных графиков с двумя легендами

  • Линейные графики: Пример выше демонстрирует использование двух легенд с линейными графиками.

  • Столбчатые диаграммы: Аналогичный подход можно использовать для столбчатых диаграмм, создавая отдельные наборы столбцов для каждой легенды.

  • Точечные диаграммы: Для точечных диаграмм можно использовать разные маркеры или цвета для каждой группы данных и создать соответствующие легенды.

Решение распространенных проблем и советы по оптимизации

  • Перекрытие легенд: Используйте параметр loc для размещения легенд в разных углах графика или вручную отрегулируйте их положение.

  • Неправильные подписи: Убедитесь, что подписи (label) правильно присвоены графическим элементам.

  • Оптимизация производительности: Для больших наборов данных используйте векторизацию NumPy для повышения производительности.

Совет: Если у вас очень сложный график с множеством элементов, рассмотрите возможность упрощения визуализации или использования нескольких графиков вместо одного с двумя легендами.

Заключение

Создание графиков с двумя списками условных обозначений в Matplotlib предоставляет мощный способ представления и анализа сложных данных. С помощью методов, описанных в этой статье (matplotlib добавить легенду), вы можете эффективно разделять элементы графика на группы и предоставлять четкие и информативные визуализации. Помните, что практика и эксперименты – ключ к освоению визуализации данных с помощью Matplotlib (python matplotlib legend, matplotlib custom legend). Matplotlib legend multiple позволяет комплексно настраивать отображение данных. Не бойтесь экспериментировать с различными параметрами и подходами, чтобы найти наилучшее решение для ваших конкретных задач. Matplotlib axis legend.


Добавить комментарий