Рубрики
Без рубрики

Изменение размера шрифта в Matplotlib

В этом уроке мы рассмотрим, как изменить размер шрифта в графике Matplotlib. Мы будем использовать аргумент fontsize, а также настроить параметры rc, чтобы изменить стиль.

Автор оригинала: David Landup.

Вступление

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()
сюжет matplotlib

Изменение размера шрифта с помощью размера шрифта

Давайте попробуем самый простой вариант. Каждая функция, которая имеет дело с текстом , например Title , labels и все другие текстовые функции принимают аргумент – 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()

Здесь мы установили размер шрифта для заголовка, а также метки для времени и интенсивности. Запуск этого кода дает:

аргумент размера шрифта matplotlib

Мы также можем изменить размер шрифта в легенде, добавив аргумент prop и установив там размер шрифта:

leg = ax.legend(prop={"size":16})

Это изменит размер шрифта, который в данном случае также перемещает легенду в нижний левый угол, чтобы она не перекрывалась с элементами в правом верхнем углу:

matplotlib изменить размер шрифта легенды

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

В таких случаях мы можем обратиться к настройке размера шрифта глобально .

Изменение Размера Шрифта Глобально

Есть два способа установить размер шрифта глобально. Мы хотим установить для параметра 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 () , так как если вы попытаетесь применить их позже, никаких изменений не будет сделано. Этот подход изменит все, что указано в качестве шрифта объектом font kwargs.

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

matplotlib изменить размер шрифта rcparams

В зависимости от версии Matplotlib, которую вы используете, вы не сможете изменить их с помощью rc-параметров. Вы бы использовали axes.labelsize и xtick.labelsize /|/ytick.labelsize для них соответственно.

Если установка этих параметров не изменяет размер меток, вы можете использовать функцию set () , передающую размер шрифта , или использовать функцию 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()

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

matplotlib изменение размера шрифта палочки и метки

Вывод

В этом уроке мы рассмотрели несколько способов изменения размера шрифтов в Matplotlib.

Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей связкой книг on :

Визуализация данных в Python с Matplotlib и Pandas – это книга, предназначенная для того, чтобы познакомить абсолютных новичков с Pandas и Matplotlib, обладающих базовыми знаниями Python, и позволить им создать прочную основу для продвинутой работы с библиотеками тезисов- от простых сюжетов до анимированных 3D-сюжетов с интерактивными кнопками.

Он служит углубленным руководством, которое научит вас всему, что вам нужно знать о пандах и Matplotlib, включая то, как создавать типы сюжетов, которые не встроены в саму библиотеку.

Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простые манипуляции с данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. Более конкретно, в течение 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.

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