Pergunta simples aqui: estou tentando obter o tamanho da minha legenda matplotlib.pyplot
menor (ou seja, o texto menor). O código que estou usando é mais ou menos assim:
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
Mike
fonte
fonte
plot.rcParams.update
?Isso deve fazer
Depois faça o enredo depois.
Existem muitos outros rcParams, eles também podem ser definidos no arquivo matplotlibrc.
Também presumivelmente você pode alterá-lo passando uma
matplotlib.font_manager.FontProperties
instância, mas isso eu não sei como fazer. -> veja a resposta de Yann.fonte
matplotlib.rc('legend', fontsize=0.5, linewidth=2)
legend.handlelength
vez delegend.linewidth
usando
import matplotlib.pyplot as plt
Método 1: especifique o tamanho da fonte ao chamar legenda (repetitiva)
Com esse método, você pode definir o tamanho da fonte para cada legenda na criação (permitindo ter várias legendas com diferentes tamanhos de fonte). No entanto, você precisará digitar tudo manualmente sempre que criar uma legenda.
(Nota: @ Mathias711 listou os tamanhos das fontes nomeados disponíveis em sua resposta)
Método 2: especifique o tamanho da fonte em rcParams (conveniente)
Com esse método, você define o tamanho da fonte da legenda padrão e todas as legendas o usarão automaticamente, a menos que você especifique o método 1. Isso significa que você pode definir o tamanho da fonte da legenda no início do seu código e não se preocupe em defini-la para cada legenda individual .
Se você usar um tamanho chamado por exemplo
'medium'
, então o texto da legenda será ampliado com o globalfont.size
norcParams
. Para mudar ofont.size
usoplt.rc(font.size='medium')
fonte
Existem também alguns tamanhos de fonte nomeados , além do tamanho em pontos:
Uso:
fonte
Existem várias configurações para ajustar o tamanho da legenda. Os dois que eu acho mais úteis são:
legend(..., labelspacing=0.2)
reduzirá o espaçamento entre as entradas para 2 pontos. O padrão na minha instalação é de cerca de 0,5.legend(..., prop={'size':8})
. O padrão na minha instalação é de cerca de 14 pontos.Além disso, os documentação lenda listas de uma série de outros parâmetros de preenchimento e espaçamento, incluindo:
borderpad
,handlelength
,handletextpad
,borderaxespad
, ecolumnspacing
. Todos eles seguem a mesma forma que espaçamento entre rótulos e área também em múltiplos tamanhos de fonte.Esses valores também podem ser definidos como padrões para todas as figuras usando o arquivo matplotlibrc .
fonte
Na minha instalação, o FontProperties altera apenas o tamanho do texto, mas ainda é muito grande e espaçado. Eu encontrei um parâmetro
pyplot.rcParams
:legend.labelspacing
que eu estou supondo que está definido para uma fração do tamanho da fonte. Eu mudei comNão sei como especificá-lo para a função pyplot.legend - passando
ou
volta com um erro.
fonte
plot.legend (loc = 'inferior direito', decimal_places = 2, fontsize = '11', title = 'Olá', title_fontsize = '20')
fonte