Автор оригинала: 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()
Изменение размера шрифта с помощью размера шрифта
Давайте попробуем самый простой вариант. Каждая функция, которая имеет дело с текстом , например 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()
Здесь мы установили размер шрифта
для заголовка, а также метки для времени и интенсивности. Запуск этого кода дает:
Мы также можем изменить размер шрифта в легенде, добавив аргумент prop
и установив там размер шрифта:
leg = ax.legend(prop={"size":16})
Это изменит размер шрифта, который в данном случае также перемещает легенду в нижний левый угол, чтобы она не перекрывалась с элементами в правом верхнем углу:
Однако, хотя мы можем установить каждый размер шрифта таким образом, если у нас много текстовых элементов, и мы просто хотим получить единый, общий размер – этот подход является повторяющимся.
В таких случаях мы можем обратиться к настройке размера шрифта глобально .
Изменение Размера Шрифта Глобально
Есть два способа установить размер шрифта глобально. Мы хотим установить для параметра 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, которую вы используете, вы не сможете изменить их с помощью 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.
Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей связкой книг 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.
Он служит уникальным практическим руководством по визуализации данных, в изобилии инструментов, которые вы могли бы использовать в своей карьере.