Eu criei este enredo usando Matlab
Usando matplotlib, os eixos x desenham grandes números, como 100.000, 200.000, 300.000. Gostaria de ter algo como 1, 2, 3 e 10 ^ 5 para indicar que é realmente 100.000, 200.000, 300.000.
Existe uma maneira simples de criar tal escala em matplotlib?
python
matplotlib
Águia
fonte
fonte
ticklabel_format
também é um método para os objetos de eixos, você pode tentar algo comoax.ticklabel_format(style='sci', axis='x', scilimits=(0,0))
[0.1, 0.2, ...]
e eu prefiro[1, 2, ...]
com um expoente ajustado. você conseguiu encontrar uma solução para isso?Esta não é tanto uma resposta à sua pergunta original, mas a uma das perguntas que você tinha no corpo da pergunta.
Um pequeno preâmbulo, para que meu nome não pareça estranho:
Como foi mencionado, você pode usar ticklabel_format para especificar que matplotlib deve usar notação científica para valores grandes ou pequenos:
Você pode afetar a maneira como isso é exibido usando os sinalizadores em rcParams (de matplotlib import rcParams) ou definindo-os diretamente. Não encontrei uma maneira mais elegante de mudar entre '1e' e 'x10 ^' notação científica do que:
Isso deve lhe dar mais Matlab-esc e, de fato, sem dúvida uma aparência melhor. Acho que o seguinte deve fazer o mesmo:
fonte
O formatador escalar suporta a coleta de expoentes. Os documentos são os seguintes:
sua técnica seria:
Para obter o expoente exibido no formato
x10^5
, instancie o ScalarFormatter comuseMathText=True
.Você também pode usar:
Para obter um resultado como este:
fonte
useMathText=True
para obterx10^4
.Eu encontro a solução simples
fonte