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.rcParams
ou matplotlib.rc
; ou usando um matplotlibrc
arquivo 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 matplotlib
parâ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 matplotlib
parâmetros para especificamente o tamanho lenda da fonte e lenda?
As coisas que eu tentei são:
- Verificar o exemplo
matplotlibrc
na 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
facecolor
definido, que é mencionado nessa página, mas também temedgecolor
conjunto que não é mencionado na página)
A rcParams
propriedade, que altera a fonte é font.family
aceita 'serif'
, 'sans-serif'
, 'cursive'
, ' fantasy'
, e 'monospace'
conforme descrito no ligada amostra de matplotlibrc
arquivo . Se text.usetex
é False
també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 Text
instâ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()
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()
Note-se que este método não funciona quando text.usetex
é True
.