В этом уроке будут рассмотрены свойства класса matplotlib.text.Text, которые используются для тонкой настройки внешнего вида текста на элементах Matplotlib.
- Параметры, отвечающие за отображения текста
- Параметры, отвечающие за расположение надписи
- Параметры, отвечающие настройку заднего фона надписи
Мы не будем рассматривать все свойства класса Text, сделаем обзор только на наиболее часто используемые.
Параметры, отвечающие за отображения текста
- alpha: float
- Уровень прозрачности надписи. Параметр задается числом в диапазоне от 0 до 1. 0 – полная прозрачность, 1 – полная непрозрачность.
- color: color
- Цвет текста. Значение параметра имеет тоже тип, что и параметр функции plot, отвечающий за цвет графика. Более подробная информация по его использованию представлена в Matplotlib. Урок 2. Работа с инструментом pyplot
- fontfamily (или family): str
- Шрифт текста, задается в виде строки из следующего набора: {‘serif’, ‘sans-serif’, ‘cursive’, ‘fantasy’, ‘monospace’}. Можно использовать свой шрифт.
- fontsize (или size): str, int
- Размер шрифта, можно выбрать из ряда: {‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}, либо задать его в виде численного значения.
- fontstyle (или style): str
- Стиль шрифта, задается из следующего набора {‘normal’, ‘italic’, ‘oblique’}.
- fontvariant (или variant): str
- Начертание шрифта, задается из следующего набора {‘normal’, ‘small-caps’}.
- fontweight (или weight): str
- Насыщенность шрифта, задается из следующего набора {‘ultralight’, ‘light’, ‘normal’, ‘regular’, ‘book’, ‘medium’, ‘roman’, ‘semibold’, ‘demibold’, ‘demi’, ‘bold’, ‘heavy’, ‘extra bold’, ‘black’} либо численным значением в диапазоне 0-1000.
Рассмотрим пример, демонстрирующий использование перечисленных выше параметров:
plt.title("Title", alpha=0.5, color="r", fontsize=18, fontstyle="italic", fontweight="bold", linespacing=10) plt.plot(range(0,10), range(0,10))
Для группового задания свойств можно использовать параметр fontproperties или font_properties, которому в качестве значения можно передать объект класса font_manager.FontProperties. Данный объект создается следующим образом:
FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None)
- family
- Имя шрифта
- style
- Стиль шрифта
- variant
- Начертание
- stretch
- Ширина шрифта
- weight
- Насыщенность шрифта
- size
- Размер шрифта
Типы параметров конструктора такие же как у параметров, отвечающих за отображение шрифта.
Не забудьте предварительно импортировать FontProperties прежде, чем его использовать:
from matplotlib.font_manager import FontProperties plt.title("Title", fontproperties=FontProperties(family="monospace", style="italic", weight="heavy", size=15)) plt.plot(range(0,10), range(0,10))
Параметры, отвечающие за расположение надписи
Для надписи можно задать выравнивание, позицию, вращение и z-порядок:
- horizontalalignment (или ha): str
- Горизонтальное выравнивание, задается из следующего набора {‘center’, ‘right’, ‘left’}.
- verticalalignment (или va): str
- Вертикальное выравнивание, задается из следующего набора {‘center’, ‘top’, ‘bottom’, ‘baseline’, ‘center_baseline’}.
- position: (float, float)
- Позиция надписи, определяется двумя координатами x и y, которые передаются в параметр position в виде кортежа из двух элементов.
- rotation: float или str
- Вращение. Ориентацию надписи можно задать в виде текста {‘vertical’, ‘horizontal’} либо численно – значение в градусах.
- rotation_mode: str
- Режим вращения. Данный параметр определяет очередность вращения и выравнивания. Если он равен ‘default’, то вначале производится вращение, а потом выравнивание. Если равен ‘anchor’, то наоборот.
- zorder: float
- Порядок расположения. Значение параметра определяет очередность вывода элементов. Элемент с минимальным значением zorder выводится первым.
Рассмотрим на примере заголовка использование параметров задания расположения:
plt.title("Title", fontsize=17, position=(0.7, 0.2), rotation="vertical") plt.plot(range(0,10), range(0,10))
Параметры, отвечающие настройку заднего фона надписи
- backgroundcolor: color
- Цвет заднего фона
Если требуется более тонкая настройка с указанием цвета, толщины, типа рамки, цвета основной заливки и т.п., то используйте параметр bbox, его значением – это словарь, ключами которого являются свойства класса patches.FancyBboxPatch:
Свойство | Тип значения | Описание |
boxstyle | str или matplotlib.patches.BoxStyle | Стиль рамки. См. таблицу ниже |
alpha | float или None | Прозрачность |
color | color | Цвет |
edgecolor или ec | color или None или ‘auto’ | Цвет границы рамки |
facecolor или fc | color или None | Цвет заливки |
fill | bool | Заливка (использовать или нет) |
hatch | {‘/’, ‘\’, ‘|’, ‘-‘, ‘+’, ‘x’, ‘o’, ‘O’, ‘.’, ‘*’} | Штриховка |
linestyle или ls | {‘-‘, ‘–‘, ‘-.’, ‘:’, ”, (offset, on-off-seq), …} | Стиль линии рамки |
linewidth или lw | float или None | Толщина линии |
Параметры boxstyle:
Класс | Имя | Атрибуты | Внешний вид |
Circle | circle | pad=0.3 | |
DArrow | darrow | pad=0.3 | |
LArrow | larrow | pad=0.3 | |
RArrow | rarrow | pad=0.3 | |
Round | round | pad=0.3, rounding_size=None | |
Round4 | round4 | pad=0.3, rounding_size=None | |
Roundtooth | roundtooth | pad=0.3, tooth_size=None | |
Sawtooth | sawtooth | pad=0.3, tooth_size=None | |
Square | square | pad=0.3 |
Ниже представлен пример оформления заднего фона надписи:
from matplotlib.patches import FancyBboxPatch bbox_properties=dict( boxstyle="rarrow, pad=0.3", ec="g", fc="r", ls="-", lw=3 ) plt.title("Title", fontsize=17, bbox=bbox_properties, position=(0.5, 0.85)) plt.plot(range(0,10), range(0,10))
P.S.
Вводные уроки по “Линейной алгебре на Python” вы можете найти соответствующей странице нашего сайта. Все уроки по этой теме собраны в книге “Линейная алгебра на Python”.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. Для начала вы можете познакомиться с вводными уроками. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.