Data Visualization

Два способа настройки толщины линий в легендах Matplotlib

Spread the love

Matplotlib — мощная библиотека Python для создания визуализаций. Легенды необходимы для понимания графиков, а настройка их внешнего вида улучшает читаемость. В этой статье демонстрируются два метода настройки ширины линий в легендах Matplotlib.

Содержание

Прямая установка ширины линии с помощью set_linewidth()

Метод set_linewidth() обеспечивает точный контроль над отдельными линиями легенды. Он напрямую управляет legendHandles легенды, которые являются объектами Line2D.


import matplotlib.pyplot as plt

# Пример данных
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]

# Создание графика
fig, ax = plt.subplots()
line1, = ax.plot(x, y1, label='Линия 1', linewidth=2)
line2, = ax.plot(x, y2, label='Линия 2', linewidth=1)

# Создание легенды
legend = ax.legend()

# Доступ и изменение ширины линии
legend.legendHandles[0].set_linewidth(4)  # Линия 1 в легенде
legend.legendHandles[1].set_linewidth(3)  # Линия 2 в легенде

# Показать график
plt.show()

Этот код сначала строит данные, затем получает доступ к дескрипторам легенды через legend.legendHandles. set_linewidth() регулирует ширину каждой линии. legendHandles[0] относится к первой линии и так далее.

Использование matplotlib.pyplot.setp() для краткой модификации

matplotlib.pyplot.setp() предоставляет более компактный способ одновременной модификации нескольких свойств.


import matplotlib.pyplot as plt

# Пример данных (те же, что и раньше)
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]

# Создание графика
fig, ax = plt.subplots()
line1, = ax.plot(x, y1, label='Линия 1', linewidth=2)
line2, = ax.plot(x, y2, label='Линия 2', linewidth=1)

# Создание легенды
legend = ax.legend()

# Изменение ширины линии с помощью setp()
plt.setp(legend.legendHandles, 'linewidth', [4, 3])

# Отображение графика
plt.show()

plt.setp() эффективно устанавливает linewidth для всех дескрипторов. [4, 3] задает ширину для каждой линии в порядке их появления.

Часто задаваемые вопросы

В: Что делать, если у меня больше двух линий?

О: Оба метода легко адаптируются. Для set_linewidth() расширьте индексацию. Для setp() убедитесь, что список linewidth соответствует количеству дескрипторов легенды.

В: Можно ли изменить другие свойства легенды?

О: Да, оба метода изменяют такие свойства, как цвет, стиль линии и маркер. Обратитесь к документации Matplotlib.

В: Какой метод следует выбрать?

О: set_linewidth() обеспечивает гранулярный контроль над отдельными линиями. setp() более компактен для изменения одного и того же свойства для всех линий. Выбирайте в зависимости от ваших потребностей и стиля кодирования.

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *