Вступление
Matplotlib - одна из наиболее широко используемых библиотек визуализации данных в Python. Большая часть популярности Matplotlib связана с его параметрами настройки - вы можете настроить практически любой элемент из его иерархии объектов .
В этом уроке мы рассмотрим, как изменить размер шрифта в Matplotlib .
Изменить размер шрифта в Matplotlib
Есть несколько способов изменить размер шрифтов в Matplotlib. Вы можете
установить fontsize
, изменить способ обработки шрифтов в Matplotlib в
целом или даже изменить размер
рисунка .
Давайте сначала создадим простой сюжет, на котором мы захотим изменить размер шрифтов:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
ax.set_title('Sine and cosine waves')
ax.set_xlabel('Time')
ax.set_ylabel('Intensity')
leg = ax.legend()
plt.show()
{.ezlazyload}
Изменить размер шрифта, используя размер шрифта
Попробуем самый простой вариант. Каждая функция, которая имеет дело с
текстом, например Title
, метки и все другие текстовые функции,
принимает аргумент - fontsize
.
Вернемся к предыдущему коду и укажем fontsize
для этих элементов:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
ax.set_title('Sine and cosine waves', fontsize=20)
ax.set_xlabel('Time', fontsize=16)
ax.set_ylabel('Intensity', fontsize=16)
leg = ax.legend()
plt.show()
Здесь мы установили fontsize
для заголовка, а также метки для времени
и интенсивности. Выполнение этого кода дает:
{.ezlazyload}
Мы также можем изменить размер шрифта в легенде, добавив prop
и
установив там размер шрифта:
leg = ax.legend(prop={"size":16})
Это изменит размер шрифта, который в этом случае также перемещает легенду в нижний левый угол, чтобы она не перекрывалась с элементами в верхнем правом углу:
{.ezlazyload}
Однако, хотя мы можем установить каждый размер шрифта таким образом, если у нас много текстовых элементов, и мы просто хотим единообразного общего размера - этот подход повторяется.
В таких случаях мы можем перейти к установке размера шрифта глобально .
Глобальное изменение размера шрифта
Есть два способа установить глобальный размер шрифта. Мы хотим
установить для font_size
новый размер. Мы можем получить к этому
параметру через rcParams['font.size']
.
Один из способов - изменить их напрямую:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
plt.rcParams['font.size'] = '16'
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
plt.xlabel('Time')
plt.ylabel('Intensity')
fig.suptitle('Sine and cosine waves')
leg = ax.legend()
plt.show()
Вы должны установить их перед plot()
поскольку, если вы попытаетесь
применить их позже, никаких изменений не произойдет. Этот подход изменит
все, что указано в качестве шрифта объектом kwargs font
Однако, когда мы запускаем этот код, становится очевидным, что ни метки x и y, ни метки x и y не изменились в размере:
{.ezlazyload}
В зависимости от версии Matplotlib, которую вы используете, вы не
сможете изменить их с помощью параметров rc. Для них вы должны
использовать axes.labelsize
и xtick.labelsize
/ ytick.labelsize
соответственно.
Если их установка не меняет размер меток, вы можете использовать функцию
set()
fontsize
или использовать set_fontsize()
:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
# Set general font size
plt.rcParams['font.size'] = '16'
# Set tick font size
for label in (ax.get_xticklabels() + ax.get_yticklabels()):
label.set_fontsize(16)
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
plt.xlabel('Time', fontsize=16)
plt.ylabel('Intensity', fontsize=16)
fig.suptitle('Sine and cosine waves')
leg = ax.legend()
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} Ограниченная по времени скидка: 2 к 1, сэкономьте 50%!
✅ 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.
Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.