Como se altera o tamanho da fonte de todos os elementos (ticks, labels, title) em um gráfico matplotlib?
Eu sei como alterar os tamanhos dos rótulos dos marcadores, isso é feito com:
import matplotlib
matplotlib.rc('xtick', labelsize=20)
matplotlib.rc('ytick', labelsize=20)
Mas como alguém muda o resto?
python
matplotlib
font-size
Herman Schaaf
fonte
fonte
'family'
,'weight'
, etc.?'family'
como'normal'
,'sans-serif'
, etc.import matplotlib.pyplot as plt
, você pôde gostar de salientar quepyplot
temrc
também. Você pode fazer issoplt.rc(...
sem precisar alterar suas importações.Se você é um maníaco por controle como eu, convém definir explicitamente todos os tamanhos de fonte:
Observe que você também pode definir os tamanhos que chamam o
rc
métodomatplotlib
:fonte
plt.rc('axes', titlesize=BIGGER_SIZE)
plt.rc('axes', titlesize=SMALL_SIZE, labelsize=MEDIUM_SIZE)
fonte
Se você deseja alterar o tamanho da fonte para apenas um gráfico específico que já foi criado, tente o seguinte:
fonte
ax=plt.gca()
se o gráfico foi criado sem definir um eixo.ax.get_legend().get_texts()
, use , porqueax.legend()
redesenha toda a legenda com parâmetros padrão, além de retornar o valor deax.get_legend()
.Atualização: Veja a parte inferior da resposta para uma maneira um pouco melhor de fazê-lo.
Atualização # 2: Também descobri a alteração das fontes dos títulos das legendas.
Atualização # 3: Há um bug no Matplotlib 2.0.0 que está fazendo com que os rótulos de ticks dos eixos logarítmicos retornem à fonte padrão. Deve ser corrigido no 2.0.1, mas incluí a solução alternativa na 2ª parte da resposta.
Esta resposta é para qualquer um que tenta alterar todas as fontes, inclusive para a legenda, e para quem tenta usar fontes e tamanhos diferentes para cada coisa. Ele não usa rc (o que parece não funcionar para mim). É um tanto complicado, mas não pude entender pessoalmente nenhum outro método. Basicamente, combina a resposta de ryggyr aqui com outras respostas no SO.
A vantagem desse método é que, com vários dicionários de fontes, é possível escolher diferentes fontes / tamanhos / pesos / cores para os vários títulos, escolher a fonte para os rótulos dos marcadores e escolher a fonte para a legenda, tudo de forma independente.
ATUALIZAR:
Desenvolvi uma abordagem um pouco diferente e menos confusa que acaba com os dicionários de fontes e permite qualquer fonte em seu sistema, mesmo fontes .otf. Para ter fontes separadas para cada coisa, basta escrever mais
font_path
efont_prop
gostar de variáveis.Espero que esta seja uma resposta abrangente
fonte
Aqui está um totalmente diferente abordagem que funciona surpreendentemente bem para alterar o tamanho da fonte:
Alterar o tamanho da figura !
Eu costumo usar código como este:
Quanto menor o tamanho da figura, maior a fonte é relativa à plotagem . Isso também aumenta os marcadores. Nota Também defino o
dpi
ou ponto por polegada. Aprendi isso em uma postagem no fórum AMTA (American Modeling Teacher of America). Exemplo do código acima:fonte
bbox_inches
argumentofig.savefig('Basic.png', bbox_inches="tight")
Usar
plt.tick_params(labelsize=14)
fonte
Você pode usar
plt.rcParams["font.size"]
para definirfont_size
emmatplotlib
e também você pode usarplt.rcParams["font.family"]
para definirfont_family
emmatplotlib
. Tente este exemplo:fonte
Aqui está o que eu geralmente uso no Jupyter Notebook:
fonte
Com base no material acima:
fonte
Esta é uma extensão da resposta de Marius Retegan . Você pode criar um arquivo JSON separado com todas as suas modificações e depois carregá-lo com rcParams.update. As alterações serão aplicadas apenas ao script atual. assim
e salve este 'exemplo_arquivo.json' na mesma pasta.
fonte
Eu concordo totalmente com o Prof Huster de que a maneira mais simples de proceder é alterar o tamanho da figura, o que permite manter as fontes padrão. Eu apenas tive que complementar isso com uma opção bbox_inches ao salvar a figura como um pdf, porque os rótulos dos eixos foram cortados.
fonte