Как изменить размер шрифта для всех элементов (галочки, метки, заголовок) на графике matplotlib?
Я знаю, как изменить размеры меток, это делается с помощью:
import matplotlib
matplotlib.rc('xtick', labelsize=20)
matplotlib.rc('ytick', labelsize=20)
Но как изменить остальных?
python
matplotlib
font-size
Герман Шааф
источник
источник
'family'
,'weight'
и т. Д.?'family'
Like'normal'
,'sans-serif'
и т.д.import matplotlib.pyplot as plt
, вы могли бы отметить, чтоpyplot
имеетrc
. Вы можете обойтисьplt.rc(...
без изменения вашего импорта.Если вы такой же фанат управления, как я, вы можете явно указать все размеры шрифтов:
Обратите внимание, что вы также можете установить размеры вызова
rc
методаmatplotlib
:источник
plt.rc('axes', titlesize=BIGGER_SIZE)
plt.rc('axes', titlesize=SMALL_SIZE, labelsize=MEDIUM_SIZE)
источник
Если вы хотите изменить размер шрифта только для определенного графика, который уже был создан, попробуйте это:
источник
ax=plt.gca()
если график был создан без определения оси.ax.get_legend().get_texts()
, потому чтоax.legend()
перерисовывает всю легенду с параметрами по умолчанию поверх возвращаемого значенияax.get_legend()
.Обновление: см. Нижнюю часть ответа для немного лучшего способа сделать это.
Обновление № 2: я также понял, как изменить шрифты заголовков легенд.
Обновление № 3: в Matplotlib 2.0.0 есть ошибка , из-за которой метки галочек для логарифмических осей возвращаются к шрифту по умолчанию. Должно быть исправлено в 2.0.1, но я включил обходной путь во 2-й части ответа.
Этот ответ предназначен для всех, кто пытается изменить все шрифты, в том числе для легенды, и для всех, кто пытается использовать разные шрифты и размеры для каждой вещи. Это не использует rc (который, кажется, не работает для меня). Это довольно громоздко, но я не мог справиться с любым другим методом лично. Это в основном сочетает здесь ответ ryggyr с другими ответами на SO.
Преимущество этого метода заключается в том, что, имея несколько словарей шрифтов, вы можете выбирать разные шрифты / размеры / веса / цвета для различных заголовков, выбирать шрифт для меток галочек и выбирать шрифт для легенды, причем все независимо.
ОБНОВИТЬ:
Я разработал немного другой, менее загроможденный подход, который устраняет словари шрифтов и позволяет использовать любой шрифт в вашей системе, даже шрифты .otf. Чтобы иметь отдельные шрифты для каждой вещи, просто напишите больше
font_path
иfont_prop
как переменные.Надеюсь, это исчерпывающий ответ
источник
Вот совершенно другой подход, который удивительно хорошо работает для изменения размеров шрифта:
Измените размер фигуры !
Я обычно использую такой код:
Чем меньше размер рисунка, тем больше шрифт относительно графика . Это также повышает маркеры. Обратите внимание, я также установил
dpi
или точку на дюйм. Я узнал об этом из публикации на форуме AMTA (American Modeling Teacher of America). Пример из приведенного выше кода:источник
bbox_inches
аргументомfig.savefig('Basic.png', bbox_inches="tight")
использование
plt.tick_params(labelsize=14)
источник
Вы можете использовать
plt.rcParams["font.size"]
для настройкиfont_size
в,matplotlib
а также вы можете использоватьplt.rcParams["font.family"]
для настройкиfont_family
вmatplotlib
. Попробуйте этот пример:источник
Вот что я обычно использую в ноутбуке Jupyter:
источник
Исходя из вышеизложенного:
источник
Это продолжение ответа Мариуса Ретегана . Вы можете создать отдельный файл JSON со всеми вашими изменениями, а затем загрузить его с помощью rcParams.update. Изменения будут применяться только к текущему сценарию. Так
и сохраните этот «example_file.json» в той же папке.
источник
Я полностью согласен с профессором Хастером, что самый простой способ - изменить размер рисунка, что позволяет сохранить шрифты по умолчанию. Мне просто нужно было дополнить это параметром bbox_inches при сохранении фигуры в формате PDF, потому что метки оси были вырезаны.
источник