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