English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Formatação do Eixo do Matplotlib

Tutorial detalhado de formatação de eixo no Matplotlib

Às vezes, um ou alguns pontos são muito maiores do que uma grande quantidade de dados. Neste caso, a proporção do eixo precisa ser configurada para logarítmica (log) em vez de proporção normal. Esta é a escala logarítmica. No Matplotlib, pode-se configurar o atributo xscale ou vscale do objeto axes para log.

Às vezes, é necessário exibir um distância extra entre o número do eixo e o rótulo do eixo. A propriedade labelpad de qualquer eixo (x ou y ou ambos) pode ser configurada para o valor necessário.

A seguir, com a ajuda do exemplo a seguir, demonstra as duas funções acima. O subgráfico da direita tem escala logarítmica, e o subgráfico da esquerda tem rótulos de eixo x com distância maior.

Referência do seguinte código de exemplo:

# Nome do arquivo: example.py
# Copyright: 2020 By w3codebox
# Autor por: pt.oldtoolbag.com
# Data: 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 import matplotlib.pyplot as plt
 import numpy as np
 import math
 # Exibir configuração de chinês...
 plt.rcParams['font.sans-serif'] = ['SimHei'] # Passo um (substituição de sans--fonte serif)
 plt.rcParams['axes.unicode_minus'] = False  # Passo dois (solução para o problema de exibição do sinal negativo de números negativos no eixo de coordenadas)
 fig, axes = plt.subplots(1, 2, figsize=(10,4))
 x = np.arange(1,5)
 axes[0].plot(x, np.exp(x))
 axes[0].plot(x, x**2)
 axes[0].set_title("Proporção normal")
 axes[1].plot(x, np.exp(x))
 axes[1].plot(x, x**2)
 axes[1].set_yscale("log")
 axes[1].set_title("Escala logarítmica (y)")
 axes[0].set_xlabel("eixo x")
 axes[0].set_ylabel("eixo y")
 axes[0].xaxis.labelpad = 10
 axes[1].set_xlabel("eixo x")
 axes[1].set_ylabel("eixo y")
 plt.show()

Executar o código de exemplo acima, obter os seguintes resultados -

A ponta do eixo é a linha que conecta a linha de escala do eixo, dividindo a borda da área de desenho. A ponta do objeto do eixo está no topo, na parte inferior, no lado esquerdo e no lado direito. Cada ponta pode ser formatada especificando cor e largura. Se qualquer borda da cor for configurada como sem cor, pode torná-la invisível.

Referência de código de exemplo:

# Nome do arquivo: example.py
# Copyright: 2020 By w3codebox
# Autor por: pt.oldtoolbag.com
# Data: 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 import matplotlib.pyplot as plt
 import numpy as np
 import math
 # Exibir configuração de chinês...
 plt.rcParams['font.sans-serif'] = ['SimHei'] # Passo um (substituição de sans--fonte serif)
 plt.rcParams['axes.unicode_minus'] = False  # Passo dois (solução para o problema de exibição do sinal negativo de números negativos no eixo de coordenadas)
 fig = plt.figure()
 ax=plt.subplot(111)
 ax.spines['bottom'].set_color('blue')
 ax.spines['left'].set_color('red')
 ax.spines['left'].set_linewidth(2)
 ax.spines['right'].set_color(None)
 ax.spines['top'].set_color(None)
 ax.plot([1,2,3,4,5)]
 plt.show()#