- Как изменить размер шрифта на графике Matplotlib
- Пример 1: изменение размера шрифта всех элементов
- Пример 2: изменение размера шрифта заголовка
- Пример 3: изменение размера шрифта меток осей
- Пример 4: изменение размера шрифта галочек
- Бонус: восстановление размеров шрифта по умолчанию
- Text properties and layout#
- Default Font#
Как изменить размер шрифта на графике 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()
Пример 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()
Пример 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()
Бонус: восстановление размеров шрифта по умолчанию
Вы можете использовать следующий код для восстановления размера всех шрифтов по умолчанию в любой момент:
plt.rcParams.update(plt.rcParamsDefault)
Вы можете найти больше руководств по Matplotlib здесь .
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()
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 ).