Поворот меток осей в Matplotlib

Введение 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. показывать()

Вступление

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() 

простой графикmatplotlib

Поворот меток с отметками оси 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 градусов против часовой стрелки:

повернуть метку оси X с помощьюxticks{.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-галочки. Это связано с тем, что метки заполняются после рисования графика, в противном случае они возвращают пустые текстовые значения.

повернуть метки оси x с помощьюxticklabels{.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() 

Это также приводит к:

повернуть метки оси x с помощьюset_rotation{.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() 

Это также приводит к:

повернуть метки оси x с помощьюtick_params{.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 градусов:

повернуть метки оси Yyticks{.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() перед этим вызовом, чтобы он работал правильно.

повернуть метки оси Y с помощьюyticklabels{.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() 

Это также приводит к:

повернуть метки оси Y с помощьюset_rotation{.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() 

Это также приводит к:

повернуть метки оси Y с помощьюtick_params{.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() 

Это приводит к:

автоматическое форматирование дат в соответствии сmatplotlib{.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.

Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.

comments powered by Disqus