Exaustivamente a definição de parâmetros de fontes matplotlib

lã:

Pelo que eu entendo de esta documentação matplotlib fornece 3 maneiras de mudar os parâmetros de estilo para plotagem (coisas como axes.grid). Essas formas são: usando folhas de estilo para definir vários parâmetros de cada vez; a definição de parâmetros específicos através matplotlib.rcParamsou matplotlib.rc; ou usando um matplotlibrcarquivo para padrões definidos.

Eu gostaria de entender se todos os parâmetros são acessíveis em cada um dos métodos que eu listados acima e onde eu posso encontrar uma lista abrangente de todos os parâmetros.

Eu tentei entender isso a partir da documentação relacionada, mas muitas vezes não conseguem. Um exemplo específico é a configuração da fonte eixo. Eu normalmente uso uma combinação como esta:

axis_font = {'fontname':'Arial', 'size':'32'}
ax.set_ylabel('some axis title',**axis_font)

Mas não é claro o matplotlibparâmetro (se houver) que tenho posto. Será que não existe um parâmetro para a fonte eixo que poderiam ser incluídos em um arquivo de estilo, por exemplo?

Outras tentativas no meu código incluem confundindo blocos como:

legend_font = {'fontname':'Arial', 'size':'22'}
#fonts global settings
matplotlib.rc('font',family=legend_font['fontname'])

Pelos nomes parece que ele seria mudar a fonte lenda, mas na verdade está definindo claramente o parâmetro para a fonte em geral. E o tamanho não está sendo usado. Existem matplotlibparâmetros para especificamente o tamanho lenda da fonte e lenda?

As coisas que eu tentei são:

  • Verificar o exemplo matplotlibrcna parte inferior da página vinculada (nenhum sinal de fontes eixo ou lenda especificamente)
  • Imprimindo matplotlib.rcParams(nenhum sinal de fontes eixo ou lenda)
  • Verificar a api eixo (não poderia corresponder-se com arquivos de exemplo de estilo por exemplo, o clássico arquivo de estilo pré-definido foi facecolordefinido, que é mencionado nessa página, mas também tem edgecolorconjunto que não é mencionado na página)
William Miller:

A rcParamspropriedade, que altera a fonte é font.familyaceita 'serif', 'sans-serif', 'cursive', ' fantasy', e 'monospace'conforme descrito no ligada amostra de matplotlibrcarquivo . Se text.usetexé Falsetambém aceita qualquer nome da fonte concreto ou lista de nomes de fontes - que será julgado na ordem em que são especificados até um funciona.

Este método aplica-se o nome da fonte especificada para toda a figura (e a todas as figuras, quando feito em todo o mundo). Se você deseja modificar a família de fontes para um indivíduo Textinstância (ou seja, um rótulo do eixo) você pode usar matplotlib.text.Text.set_family()(o que é um alias para matplotlib.text.Text.set_fontfamily())

import matplotlib.pyplot as plt

ylabel = plt.ylabel("Y Label")
ylabel.set_family("DejaVu Serif")
plt.xlabel("X Label")

plt.show()

digite descrição da imagem aqui

E para definir o tipo de letra para apenas uma instância lenda que você pode usar plt.setp, por exemplo,

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

ylabel = plt.ylabel("Y Label")
plt.xlabel("X Label")
ylabel.set_family("DejaVu Serif")

legend = plt.legend(handles = [mpatches.Patch(color='grey', label="Label")])
plt.setp(legend.texts, family="EB Garamond")

plt.show()

digite descrição da imagem aqui


Note-se que este método não funciona quando text.usetexé True.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=285131&siteId=1
Recomendado
Clasificación