Как изменить размер шрифта на графике 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 здесь .
Стилизация
Ряд виджетов, например, Label или Text, поддерживают установку шрифта через параметр font . Каждая платформа может определять свои специфические шрифты. Но также библиотека Tk по умолчанию включает ряд именнованных шрифтов, которые могут использоваться на различных компонентах графического интерфейса и которые доступны на всех платформах:
- TkDefaultFont : шрифт по умолчанию, который применяется, если для виджета явным образом не определен шрифт
- TkTextFont : шрифт по умолчанию, который применяется для виджетов Entry, Listbox и ряда других
- TkFixedFont : шрифт с фиксированной шириной
- TkMenuFont : шрифт для пунктов меню
- TkHeadingFont : шрифт для заголовков в Listbox и в таблицах
- TkCaptionFont : шрифт для строки статуса в окнах
- TkSmallCaptionFont : шрифт малого размера для диалоговых окон
- TkIconFont : шрифт для подписей к иконкам
- TkTooltipFont : шрифт для высплывающих окон
В принципе мы можем использовать эти шрифты не только в любых виджетах:
ttk.Label(text="Hello World", font="TkTextFont")
Tk также предоставляет дополнительный набор именнованных шрифтов, которые определены только на определенных платформах. Для их получения можно использовать функцию names() из пакета tkinter.font :
from tkinter import font for font_name in font.names(): print(font_name)
Например, на Windows мы получим следующий набор:
fixed oemfixed TkDefaultFont TkMenuFont ansifixed systemfixed TkHeadingFont device TkTooltipFont defaultgui TkTextFont ansi TkCaptionFont system TkSmallCaptionFont TkFixedFont TkIconFont
В данном случае выводятся и платформа-независимые, и платформо-специфичные шрифты, например, «system».
ttk.Label(text="Hello World", font="system")
Определение шрифта
За определение шрифта в Tkinter отвечает класс Font из модуля tkinter.font . Он принимет следующие параметры:
- name : имя шрифта
- family : семейство шрифтов
- size : высота шрифта (в точках при положительном значении или в пикселях при негативном значении)
- weight : вес шрифта. Принимает значения normal (обычный) или bold (жирный)
- slant : наклон. Принимает значения roman (обычный) или italic (наклонный)
- underline : подчеркивание. Принимает значения True (с подчеркиванием) или False (без подчеркивания)
- overstrike : зачеркивание. Принимает значения True (с зачеркиванием) или False (без зачеркивания)
Для получения всех доступных семейств шрифтов на текущей платформе можно использовать функцию families() из модуля tkinter.font
from tkinter import font for family in font.families(): print(family)
Пример применения шрифтов:
from tkinter import * from tkinter import ttk from tkinter import font root = Tk() root.title("METANIT.COM") root.geometry("250x200") font1 = font.Font(family= "Arial", size=11, weight="normal", slant="roman", underline=True, overstrike=True) label1 = ttk.Label(text="Hello World", font=font1) label1.pack(anchor=NW) font2 = font.Font(family= "Verdana", size=11, weight="normal", slant="roman") label2 = ttk.Label(text="Hello World", font=font2) label2.pack(anchor=NW) root.mainloop()

Также можно использовать определение шрифта в виде строки:
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") label1 = ttk.Label(text="Hello World", font="Arial 11 normal roman") label1.pack(anchor=NW) label2 = ttk.Label(text="Hello World", font="Verdana 11 normal roman") label2.pack(anchor=NW) root.mainloop()
Например, в определении «Arial 11 normal roman» , применяется семейство шрифта Arial, высота 11 единиц, нежирный шрифт без наклона.
Как увеличить текст кода или размер окна в Pycharm?
Пробовал использовать стандартное сочетание ctrl + s, но оно не помогает. Может есть другие горячие клавиши?
Отслеживать
задан 11 янв 2021 в 14:22
31 1 1 золотой знак 1 1 серебряный знак 4 4 бронзовых знака
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Так же в настройках ( File->Settings ) можно включить изменение масштаба, используя Ctrl и колёсико мыши:

Отслеживать
ответ дан 11 янв 2021 в 14:34
Mikhail Murugov Mikhail Murugov
5,406 1 1 золотой знак 15 15 серебряных знаков 33 33 бронзовых знака
А как вернуть в изначальное положение?
11 янв 2021 в 15:49
Можно самому задать удобное сочетание: Settings -> Keymap -> находим все настройки для шрифта по ключевому слову ‘font’ -> щелкаем правой кнопкой на нужной -> выбираем ‘Add Keybord Shortcut’ -> задаем удобное сочетание
Отслеживать
ответ дан 11 янв 2021 в 14:45
21 1 1 бронзовый знак
1. File --> Settings. 2. In left side expand Editor --> Font 3. Change Size value. 4. Press "Apply" and "OK"
Отслеживать
ответ дан 11 янв 2021 в 14:29
CatException CatException
669 1 1 золотой знак 6 6 серебряных знаков 20 20 бронзовых знаков
- python
- pycharm
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Изменить размер шрифта в 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 и установив там размер шрифта:
leg = ax.legend(prop=)
Это изменит размер шрифта, который в этом случае также сдвинет легенду в нижний левый угол, чтобы она не перекрывалась с элементами в верхнем правом углу:

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