Вступление
Matplotlib - одна из наиболее широко используемых библиотек визуализации данных в Python. Большая часть популярности Matplotlib связана с его параметрами настройки - вы можете настроить практически любой элемент из его иерархии объектов .
В этом уроке мы рассмотрим, как вращать текст / метки галочки на графике Matplotlib .
Создание сюжета
Давайте сначала создадим простой сюжет:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()
Поворот меток с отметками оси X в Matplotlib
Теперь давайте посмотрим, как мы можем здесь вращать метки оси X. Есть
два способа сделать это - изменить его на уровне рисунка с помощью
plt.xticks()
или изменить его на уровне осей, используя
tick.set_rotation()
индивидуально, или даже используя
ax.set_xticklabels()
и ax.xtick_params()
.
Начнем с первого варианта:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.xticks(rotation = 45) # Rotates X-Axis Ticks by 45-degrees
plt.show()
Здесь мы установили rotation
xticks
на 45, что означает наклон на 45
градусов против часовой стрелки:
{.ezlazyload}
Примечание. Эта функция, как и все остальные здесь, должна
вызываться после plt.plot()
, чтобы метки не могли оказаться
обрезанными или неуместными.
Другой вариант - получить текущий Axes
и вызвать для него
ax.set_xticklabels()
. Здесь мы можем установить метки, а также их
поворот:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
ax = plt.gca()
plt.draw()
ax.set_xticklabels(ax.get_xticks(), rotation = 45)
plt.show()
Примечание. Для того, чтобы этот подход сработал, вам необходимо
вызвать plt.draw()
перед доступом или установкой меток X-галочки.
Это связано с тем, что метки заполняются после рисования графика, в
противном случае они возвращают пустые текстовые значения.
{.ezlazyload}
В качестве альтернативы мы могли бы tick
s в ax.get_xticklabels()
.
Затем мы можем вызвать tick.set_rotation()
для каждого из них:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
ax = plt.gca()
plt.draw()
for tick in ax.get_xticklabels():
tick.set_rotation(45)
plt.show()
Это также приводит к:
{.ezlazyload}
И, наконец, вы можете использовать ax.tick_params()
и установить там
поворот метки:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
ax = plt.gca()
ax.tick_params(axis='x', labelrotation = 45)
plt.show()
Это также приводит к:
{.ezlazyload}
Поворот меток с отметками оси Y в Matplotlib
Точно такие же шаги можно применить для меток в виде галочки оси Y.
Во-первых, вы можете изменить его на уровне рисунка с помощью
plt.yticks()
или в Axes-lebel, используя tick.set_rotation()
или
манипулируя ax.set_yticklabels()
и ax.tick_params()
.
Начнем с первого варианта:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.yticks(rotation = 45)
plt.show()
Как и в прошлый раз, это устанавливает rotation
yticks
на 45
градусов:
{.ezlazyload}
Теперь поработаем напрямую с объектом Axes
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
ax = plt.gca()
plt.draw()
ax.set_yticklabels(ax.get_yticks(), rotation = 45)
plt.show()
То же самое относится и к этому plt.draw()
перед этим вызовом, чтобы
он работал правильно.
{.ezlazyload}
Теперь давайте итерацию по списку tick
s и set_rotation()
по каждому
из них:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
ax = plt.gca()
plt.draw()
for tick in ax.get_yticklabels():
tick.set_rotation(45)
plt.show()
Это также приводит к:
{.ezlazyload}
И, наконец, вы можете использовать ax.tick_params()
и установить там
поворот метки:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
ax = plt.gca()
ax.tick_params(axis='y', labelrotation = 45)
plt.show()
Это также приводит к:
{.ezlazyload}
Повернуть даты по размеру в Matplotlib
Чаще всего люди ставят галочки на своих графиках потому, что они содержат даты. Даты могут быть длинными, и даже с небольшим набором данных они начнут перекрываться и быстро станут нечитаемыми.
Конечно, вы можете вращать их, как мы делали раньше, обычно наклон в 45 градусов решает большинство проблем, а наклон на 90 градусов освобождает еще больше.
Однако в Matplotlib есть еще один вариант поворота и фиксации дат,
который даже проще, чем предыдущие методы - fig.autofmt__date()
.
Эта функция может использоваться как fig.autofmt_xdate()
или
fig.autofmt_ydate()
для двух разных осей.
Давайте посмотрим, как мы можем использовать это в наборе данных погоды Сиэтла :
import pandas as pd
import matplotlib.pyplot as plt
weather_data = pd.read_csv("seattleWeather.csv")
fig = plt.figure()
plt.plot(weather_data['DATE'], weather_data['PRCP'])
fig.autofmt_xdate()
plt.show()
Это приводит к:
{.ezlazyload}
Заключение
В этом руководстве мы рассмотрели несколько способов поворота текста / меток оси в графике Matplotlib, включая особый способ форматирования и подгонки дат.
Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в Python{.ebook-link} :
::: {style=“border: 1px solid #ebebeb;padding: 15px;”} {.ebook-link}
Визуализация данных в Python
::: {.row} ::: {.col-md-4 .col-xs-12} {.ezlazyload .img-responsive .center-block} :::
::: {.col-md-8 .col-xs-12 .my-auto} Станьте опасными с визуализацией данных
✅ 30-дневная гарантия возврата денег без вопросов
✅ от начального до продвинутого
✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 г.)
✅ Обновлено с бонусными ресурсами и руководствами ::: ::: :::
Визуализация данных в Python с помощью Matplotlib и Pandas - это книга, предназначенная для абсолютных новичков в работе с Pandas и Matplotlib с базовыми знаниями Python и позволяющая им создать прочную основу для расширенной работы с этими библиотеками - от простых графиков до анимированных трехмерных графиков с интерактивными кнопки.
Он служит подробным руководством, которое научит вас всему, что вам нужно знать о Pandas и Matplotlib, в том числе о том, как создавать типы графиков, которые не встроены в саму библиотеку.
Книга «Визуализация данных в Python» , книга для начинающих и средних разработчиков Python, проведет вас через простые манипуляции с данными с помощью Pandas, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. В частности, на протяжении 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.
Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.