Data Visualization

Поворот меток делений оси X в Matplotlib

Spread the love

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

Содержание

Использование plt.xticks()

Это самый простой способ поворота меток на оси x. Параметр rotation напрямую управляет углом поворота.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)
labels = ['Очень длинная метка ' + str(i) for i in x]

plt.plot(x, y)
plt.xticks(x, labels, rotation=45, ha='right')  # ha='right' выравнивает метки по правому краю
plt.xlabel("Ось X")
plt.ylabel("Ось Y")
plt.title("Поворот меток оси X")
plt.tight_layout()  # Предотвращает перекрытие меток
plt.show()

Аргумент ha='right' имеет решающее значение для правильного выравнивания после поворота. plt.tight_layout() помогает предотвратить перекрытие меток и улучшает общую читаемость.

Использование fig.autofmt_xdate()

Специально разработанный для меток дат, fig.autofmt_xdate() автоматически корректирует поворот и выравнивание для оптимальной читаемости.


import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime

dates = [datetime.date(2024, 1, i) for i in range(1, 11)]
values = np.random.rand(10)

fig, ax = plt.subplots()
ax.plot(dates, values)
fig.autofmt_xdate(rotation=45)
plt.show()

Этот метод упрощает процесс работы с данными временных рядов, автоматически обрабатывая форматирование дат и размещение меток.

Использование ax.set_xticklabels()

Этот метод предлагает больший контроль, позволяя настраивать метки перед поворотом.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)
labels = ['Метка ' + str(i) for i in x]

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xticklabels(labels, rotation=70)
plt.show()

Использование plt.setp()

plt.setp() предоставляет краткий способ изменения существующих свойств меток делений, включая поворот.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)

fig, ax = plt.subplots()
ax.plot(x, y)
plt.setp(ax.get_xticklabels(), rotation=30)
plt.show()

Использование ax.tick_params()

Для тонкой настройки различных свойств делений, включая поворот, ax.tick_params() является наиболее универсальным вариантом.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.tick_params(axis='x', labelrotation=60)
plt.show()

Оптимизация выравнивания меток

Независимо от выбранного метода, правильное выравнивание имеет решающее значение для читаемости. Параметр ha (горизонтальное выравнивание) (‘left’, ‘center’, ‘right’) в plt.xticks() или ax.set_xticklabels() управляет горизонтальным позиционированием. Экспериментируйте, чтобы найти оптимальное выравнивание для вашего графика. Всегда учитывайте использование plt.tight_layout() для предотвращения перекрытия меток.

Овладев этими методами, вы сможете создавать четкие и информативные графики Matplotlib, даже с комплексными или длинными метками оси x.

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

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