Set font size python

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

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') fig.suptitle('Sine and cosine waves') plt.xlabel('Time') plt.ylabel('Intensity') leg = ax.legend() plt.show() 

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

Попробуем самый простой вариант. Каждая функция, которая имеет дело с текстом, например suptitle() , xlabel() и все другие текстовые функции, принимают аргумент — 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') fig.suptitle('Sine and cosine waves', fontsize=20) plt.xlabel('Time', fontsize=16) plt.ylabel('Intensity', fontsize=16) leg = ax.legend() plt.show() 

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

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

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

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

Читайте также:  Mysql get all databases php

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

Изменить размер шрифта глобально

Есть два способа установить глобальный размер шрифта. Мы хотим установить для параметра 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, не изменились в размере:

В зависимости от версии 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() 

Источник

Text properties and layout#

Controlling properties of text and its layout with Matplotlib.

matplotlib.text.Text instances have a variety of properties which can be configured via keyword arguments to set_title , set_xlabel , text , etc.

Rectangle prop dict plus key ‘pad’ which is a pad in points

a matplotlib.transform.Bbox instance

a Path instance and a Transform instance, a Patch

[ ‘serif’ | ‘sans-serif’ | ‘cursive’ | ‘fantasy’ | ‘monospace’ ]

horizontalalignment or ha

string e.g., [ ‘Sans’ | ‘Courier’ | ‘Helvetica’ . ] [ angle in degrees | ‘vertical’ | ‘horizontal’ ] [ size in points | relative size, e.g., ‘smaller’ , ‘x-large’ ]

string or anything printable with ‘%s’ conversion

[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ] [ ‘normal’ | ‘bold’ | ‘heavy’ | ‘light’ | ‘ultrabold’ | ‘ultralight’ ]

You can lay out text with the alignment arguments horizontalalignment , verticalalignment , and multialignment . horizontalalignment controls whether the x positional argument for the text indicates the left, center or right side of the text bounding box. verticalalignment controls whether the y positional argument for the text indicates the bottom, center or top side of the text bounding box. multialignment , for newline separated strings only, controls whether the different lines are left, center or right justified. Here is an example which uses the text() command to show the various alignment possibilities. The use of transform=ax.transAxes throughout the code indicates that the coordinates are given relative to the axes bounding box, with (0, 0) being the lower left of the axes and (1, 1) the upper right.

import matplotlib.pyplot as plt import matplotlib.patches as patches # build a rectangle in axes coords left, width = .25, .5 bottom, height = .25, .5 right = left + width top = bottom + height fig = plt.figure() ax = fig.add_axes([0, 0, 1, 1]) # axes coordinates: (0, 0) is bottom left and (1, 1) is upper right p = patches.Rectangle( (left, bottom), width, height, fill=False, transform=ax.transAxes, clip_on=False ) ax.add_patch(p) ax.text(left, bottom, 'left top', horizontalalignment='left', verticalalignment='top', transform=ax.transAxes) ax.text(left, bottom, 'left bottom', horizontalalignment='left', verticalalignment='bottom', transform=ax.transAxes) ax.text(right, top, 'right bottom', horizontalalignment='right', verticalalignment='bottom', transform=ax.transAxes) ax.text(right, top, 'right top', horizontalalignment='right', verticalalignment='top', transform=ax.transAxes) ax.text(right, bottom, 'center top', horizontalalignment='center', verticalalignment='top', transform=ax.transAxes) ax.text(left, 0.5*(bottom+top), 'right center', horizontalalignment='right', verticalalignment='center', rotation='vertical', transform=ax.transAxes) ax.text(left, 0.5*(bottom+top), 'left center', horizontalalignment='left', verticalalignment='center', rotation='vertical', transform=ax.transAxes) ax.text(0.5*(left+right), 0.5*(bottom+top), 'middle', horizontalalignment='center', verticalalignment='center', fontsize=20, color='red', transform=ax.transAxes) ax.text(right, 0.5*(bottom+top), 'centered', horizontalalignment='center', verticalalignment='center', rotation='vertical', transform=ax.transAxes) ax.text(left, top, 'rotated\nwith newlines', horizontalalignment='center', verticalalignment='center', rotation=45, transform=ax.transAxes) ax.set_axis_off() plt.show() 

text props

Default Font#

The base default font is controlled by a set of rcParams. To set the font for mathematical expressions, use the rcParams beginning with mathtext (see mathtext ).

Читайте также:  Управляющие конструкции языка php

Источник

Как изменить размер шрифта на графике Matplotlib

Как изменить размер шрифта на графике Matplotlib

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

import matplotlib.pyplot as plt plt.rc('font', size=10) #controls default text size plt.rc('axes', titlesize=10) #fontsize of the title plt.rc('axes', labelsize=10) #fontsize of the x and y labels plt.rc('xtick', labelsize=10) #fontsize of the x tick labels plt.rc('ytick', labelsize=10) #fontsize of the y tick labels plt.rc('legend', fontsize=10) #fontsize of the legend 

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

import matplotlib.pyplot as plt x = [3, 4, 6, 7, 8] y = [12, 14, 15, 19, 24] plt.scatter (x, y) plt.title('title') plt.xlabel('x_label') plt.ylabel('y_label') plt.show() 

Примечание.* Размер шрифта по умолчанию для всех элементов — 10* .

Пример 1: изменение размера шрифта всех элементов

Следующий код показывает, как изменить размер шрифта каждого элемента на графике:

#set font of all elements to size 15 plt.rc('font', size= 15 ) #create plot plt.scatter (x, y) plt.title('title') plt.xlabel('x_label') plt.ylabel('y_label') plt.show() 

Пример 2: изменение размера шрифта заголовка

Следующий код показывает, как изменить размер шрифта заголовка графика:

#set title font to size 50 plt.rc('axes', titlesize= 50 ) #create plot plt.scatter (x, y) plt.title('title') plt.xlabel('x_label') plt.ylabel('y_label') plt.show() 

Изменить размер шрифта заголовка графика matplotlib

Пример 3: изменение размера шрифта меток осей

Следующий код показывает, как изменить размер шрифта меток осей графика:

#set axes labels font to size 20 plt.rc('axes', labelsize= 20 ) #create plot plt.scatter (x, y) plt.title('title') plt.xlabel('x_label') plt.ylabel('y_label') plt.show() 

Matplotlib меняет размер шрифта меток осей

Пример 4: изменение размера шрифта галочек

В следующем коде показано, как изменить размер шрифта галочек на графике:

#set tick labels font to size 20 plt.rc('xtick', labelsize= 20 ) plt.rc('ytick', labelsize= 20 ) #create plot plt.scatter (x, y) plt.title('title') plt.xlabel('x_label') plt.ylabel('y_label') plt.show() 

Matplotlib изменяет размер шрифта меток осей

Бонус: восстановление размеров шрифта по умолчанию

Вы можете использовать следующий код для восстановления размера всех шрифтов по умолчанию в любой момент:

plt.rcParams.update(plt.rcParamsDefault) 

Вы можете найти больше руководств по Matplotlib здесь .

Источник

Оцените статью