Простой вопрос: я пытаюсь сделать так, чтобы размер моей легенды matplotlib.pyplot
был меньше (то есть, чтобы текст был меньше). Код, который я использую, выглядит примерно так:
plot.figure()
plot.scatter(k, sum_cf, color='black', label='Sum of Cause Fractions')
plot.scatter(k, data[:, 0], color='b', label='Dis 1: cf = .6, var = .2')
plot.scatter(k, data[:, 1], color='r', label='Dis 2: cf = .2, var = .1')
plot.scatter(k, data[:, 2], color='g', label='Dis 3: cf = .1, var = .01')
plot.legend(loc=2)
python
size
matplotlib
legend
Майк
источник
источник
plot.rcParams.update
?Это должно сделать
Затем сделайте заговор потом.
Существует множество других rcParams, их также можно установить в файле matplotlibrc.
Также предположительно вы можете изменить его, передав
matplotlib.font_manager.FontProperties
экземпляр, но я не знаю, как это сделать. -> см. ответ Янна.источник
matplotlib.rc('legend', fontsize=0.5, linewidth=2)
legend.handlelength
вместоlegend.linewidth
с помощью
import matplotlib.pyplot as plt
Способ 1: укажите размер шрифта при вызове легенды (повторяющийся)
С помощью этого метода вы можете установить размер шрифта для каждой легенды при создании (что позволяет вам иметь несколько легенд с разными размерами шрифтов). Тем не менее, вам придется вводить все вручную каждый раз, когда вы создаете легенду.
(Примечание: @ Mathias711 перечислил доступные именованные шрифты в своем ответе)
Способ 2: укажите размер шрифта в rcParams (удобно)
С помощью этого метода вы устанавливаете размер шрифта легенды по умолчанию, и все легенды будут автоматически использовать его, если вы не укажете иное, используя метод 1. Это означает, что вы можете установить размер шрифта легенды в начале вашего кода и не беспокоиться об установке его для каждой отдельной легенды. ,
Если вы используете именованный размер, например
'medium'
, текст легенды будет масштабироваться с глобальнымfont.size
вrcParams
. Чтобы изменитьfont.size
использованиеplt.rc(font.size='medium')
источник
Есть также несколько именованных размеров шрифта , кроме размера в пунктах:
Использование:
источник
Есть несколько настроек для настройки размера легенды. Два, которые я считаю наиболее полезными:
legend(..., labelspacing=0.2)
интервал между записями уменьшится до 2 пунктов. Значение по умолчанию для моей установки составляет около 0,5.legend(..., prop={'size':8})
. Значение по умолчанию для моей установки составляет около 14 баллов.Кроме того, легенда документации перечислен ряд других отступов и распорных параметров , включая:
borderpad
,handlelength
,handletextpad
,borderaxespad
, иcolumnspacing
. Все они имеют ту же форму, что и пространство надписей, а также площадь, кратную размеру шрифта.Эти значения также могут быть установлены в качестве значений по умолчанию для всех фигур с использованием файла matplotlibrc .
источник
В моей установке FontProperties только изменяет размер текста, но он все еще слишком велик и разнесен. Я нашел параметр в
pyplot.rcParams
:,legend.labelspacing
который я предполагаю, установлен на долю размера шрифта. Я изменил это сЯ не уверен, как указать это для функции pyplot.legend - передача
или
возвращается с ошибкой.
источник
plot.legend (loc = «нижний правый», decimal_places = 2, fontsize = «11», title = «Привет», title_fontsize = «20»)
источник