English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
pip3 Instalação:
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
O sistema Linux também pode usar o gerenciador de pacotes Linux para instalar:
Debian / Ubuntu:
sudo apt-get install python-matplotlib
Fedora / Redhat:sudo yum install python-matplotlib
Após a instalação, você pode usar python -m pip list O comando para verificar se o módulo matplotlib foi instalado.
$ pip3 list | grep matplotlib matplotlib 3.3.0
import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x + 5 plt.title("demo Matplotlib") plt.xlabel("legenda eixo X") plt.ylabel("legenda eixo Y") plt.plot(x, y) plt.show()
No exemplo acima, a função np.arange() cria os valores no eixo x. Os valores correspondentes no eixo y são armazenados em outro objeto de array y. Esses valores são desenhados usando a função plot() do submódulo pyplot do pacote matplotlib.
O gráfico é exibido pela função show().
O Matplotlib não suporta chinês por padrão, podemos usar o seguinte método simples para resolver.
Aqui usamos o Source Han Sans, o Source Han Sans é uma fonte open-source lançada pela Adobe e pela Google.
Página oficial: https://source.typekit.com/source-han-serif/cn/
Endereço do GitHub: https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese
Após abrir o link, selecione um dentro dele:
Pode baixar uma fonte OTF, por exemplo, SourceHanSansSC-Bold.otf, coloque o arquivo no mesmo diretório do arquivo de código em execução:
SourceHanSansSC-Bold.otf deve estar no mesmo diretório do arquivo de código em execução:
import numpy as np from matplotlib import pyplot as plt import matplotlib # fname é o caminho para a biblioteca de fontes que você baixou, note que o arquivo SourceHanSansSC-Caminho do arquivo da fonte Bold.otf zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf") x = np.arange(1,11) y = 2 * x + 5 plt.title("Carga de solo - teste", fontproperties=zhfont1) # fontproperties define a exibição de caracteres chineses, fontsize define o tamanho da fonte plt.xlabel("eixo x", fontproperties=zhfont1) plt.ylabel("eixo y", fontproperties=zhfont1) plt.plot(x,y) plt.show()
Além disso, podemos usar fontes do sistema:
from matplotlib import pyplot as plt import matplotlib a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in a: print(i)
Imprima todos os nomes registrados na sua ttflist do font_manager, encontre um nome de fonte de caracteres chineses, por exemplo: STFangsong (Fangsong), e adicione o seguinte código:
plt.rcParams['font.family']=['STFangsong']
Como substituto para gráficos lineares, você pode exibir valores discretos adicionando uma string de formato ao função plot(). Você pode usar os seguintes caracteres de formatação.
Caractere | Descrição |
'-' | Estilo de linha sólida |
'--' | Estilo de linha tracejada |
'-.' | Estilo de linha pontilhada |
':' | Estilo de linha pontilhada |
'.' | Marcador de ponto |
',' | Marcador de pixel |
'o' | Marcador de círculo |
'v' | Marcador de triângulo invertido |
'^' | Marcador de triângulo reto |
'<' | Marcador de triângulo esquerdo |
'>' | Marcador de triângulo direito |
'1' | Marcador de seta para baixo |
'2' | Marcador de seta para cima |
'3' | Marcador de seta para a esquerda |
'4' | Marcador de seta para a direita |
's' | Marcador de quadrado |
'p' | Marcador de pentágono |
'*' | Marcador de estrela |
'h' | Marcador de hexágono 1 |
'H' | Marcador de hexágono 2 |
'+' | Marcador de sinal positivo |
'x' | Marcador X |
'D' | Marcador de diamante |
'd' | Marcador de diamante fino |
'|' | Marcador de linha vertical |
'_' | Marcador de linha horizontal |
A seguir estão os abreviaturas das cores:
Caractere | Cores |
'b' | Azul |
'g' | Verde |
'r' | Vermelho |
'c' | Azul |
'm' | Rosa |
'y' | Amarelo |
'k' | Preto |
'w' | Branco |
Para mostrar círculos para representar pontos em vez da linha no exemplo acima, use ob como uma string de formato na função plot().
import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x + 5 plt.title("demo Matplotlib") plt.xlabel("legenda eixo X") plt.ylabel("legenda eixo Y") plt.plot(x, y, "ob") plt.show()
O resultado da execução é mostrado na figura a seguir:
A seguir, um exemplo usa matplotlib para gerar um gráfico de onda sinusoidal.
import numpy as np import matplotlib.pyplot as plt # Calcular os pontos x e y na curva sinusoidal x = np.arange(0, 3 * np.pi, 0.1) y = np.sin(x) plt.title("forma de onda sinusoidal") # Usar matplotlib para desenhar pontos plt.plot(x, y) plt.show()
O resultado da execução é mostrado na figura a seguir:
A função subplot() permite que você desenhe diferentes coisas no mesmo gráfico.
A seguir, um exemplo desenha valores de seno e cosseno:
import numpy as np import matplotlib.pyplot as plt # Calcular os pontos x e y nas curvas de seno e cosseno x = np.arange(0, 3 * np.pi, 0.1) y_sin = np.sin(x) y_cos = np.cos(x) # Criar grade de subplot, altura de 2largura de 1 # Ativar o primeiro subplot plt.subplot(2, 1, 1) # Desenhar a primeira imagem plt.plot(x, y_sin) plt.title('Seno') # Ativar o segundo subplot e desenhar a segunda imagem plt.subplot(2, 1, 2) plt.plot(x, y_cos) plt.title('Cosseno') # Mostrar imagem plt.show()
O resultado da execução é mostrado na figura a seguir:
O submódulo pyplot oferece a função bar() para gerar gráficos de barras.
A seguir, um exemplo gera dois conjuntos de arrays x e y para gráficos de barras.
from matplotlib import pyplot as plt x = [5,8,10] y = [12,16,6] x2 = [6,9,11] y2 = [6,15,7] plt.bar(x, y, alinhamento = 'center') plt.bar(x2, y2, cor = 'g', alinhamento = 'center') plt.title('Gráfico de Barras') plt.ylabel('Eixo Y') plt.xlabel('Eixo X') plt.show()
O resultado da execução é mostrado na figura a seguir:
A função numpy.histogram() é uma representação gráfica da distribuição de frequência dos dados. Retângulos de tamanho horizontal igual correspondem ao intervalo de classe, chamado de bin, e a variável height corresponde à frequência.
A função numpy.histogram() recebe dois parâmetros: o array de entrada e o array de bins. Os elementos contínuos do array de bins são usados como limites de cada bin.
import numpy as np a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) np.histogram(a, bins = [0,20,40,60,80,100]) hist, bins = np.histogram(a, bins = [0,20,40,60,80,100]) print(hist) print(bins)
O resultado da saída é:
[3 4 5 2 1] [ 0 20 40 60 80 100]
O Matplotlib pode converter a representação numérica de histogramas em gráficos. A função plt() do submódulo pyplot converte o array que contém dados e o array de bins em um histograma.
from matplotlib import pyplot as plt import numpy as np a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) plt.hist(a, bins = [0,20,40,60,80,100]) plt.title("histograma") plt.show()
O resultado da execução é mostrado na figura a seguir:
Mais referências do Matplotlib:
Guia do Usuário Perguntas Frequentes e Respostas Captura de Tela