English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Embora seja fácil gerar gráficos rapidamente usando o módulo matplotlib.pyplot, é recomendável usar métodos orientados a objetos, pois eles permitem uma melhor controle e personalização de gráficos. A classe matplotlib.axes.Axes também fornece a maioria das funções.
A principal ideia por trás do uso de métodos mais formais orientados a objetos é criar objetos gráficos e, em seguida, chamar apenas métodos ou propriedades desses objetos. Este método ajuda a lidar melhor com canvas que têm múltiplas desenhos.
No interface orientada a objetos, o Pyplot é usado apenas para algumas funcionalidades, como a criação de gráficos, onde o usuário cria e rastrea explicitamente objetos gráficos e eixos. Neste nível, o usuário cria gráficos usando o Pyplot, através dos quais pode criar um ou mais objetos eixos. Em seguida, esses objetos eixos são usados para a maioria das operações de desenho.
Primeiro, crie uma instância de gráfico que fornece um canvas vazio.
# Nome do arquivo: example.py # Direitos autorais: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 fig = plt.figure()
Adicionar eixo ao gráfico. O método add_axes() requer um4um objeto lista de elementos, correspondente ao lado esquerdo, inferior, largura e altura do gráfico. Cada número deve estar entre 0 e1entre -
# Nome do arquivo: example.py # Direitos autorais: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 ax=fig.add_axes([0,0,1,1])
Configurar rótulos dos eixos x e y e o título -
# Nome do arquivo: example.py # Direitos autorais: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 ax.set_title("sine wave") ax.set_xlabel('angle') ax.set_ylabel('sine')
chame o método plot() do objeto axes.
# Nome do arquivo: example.py # Direitos autorais: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 ax.plot(x,y)
Se estiver usando no Jupyter notebookentão é necessário adicionar a instrução %matplotlib inline; a função show() do módulo pyplot exibe a imagem.
Leia e execute o seguinte código -
# Nome do arquivo: example.py # Direitos autorais: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 #! /usr/bin/env python #coding=utf-8 from matplotlib import pyplot as plt import numpy as np import math # Exibir configurações de idioma chinês... plt.rcParams['font.sans']-serif] = ['SimHei'] # Passo 1 (Substituir sans-serif字体) plt.rcParams['axes.unicode_minus'] = False # Passo 2 (Resolver o problema de exibição do sinal negativo dos eixos negativos) %matplotlib inline x = np.arange(0, math.pi*2, 0.05]) y = np.sin(x) fig = plt.figure() ax = fig.add_axes([0,0,1,1]) ax.plot(x,y) ax.set_title("Onda Seno") ax.set_xlabel('Ângulo') ax.set_ylabel('Seno') plt.show()
O código acima gera a seguinte saída -
em no Jupyter notebookexecutar o mesmo código ao longo -
# Nome do arquivo: example.py # Direitos autorais: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 #! /usr/bin/env python #coding=utf-8 from matplotlib import pyplot as plt import numpy as np import math # Exibir configurações de idioma chinês... plt.rcParams['font.sans']-serif] = ['SimHei'] # Passo 1 (Substituir sans-serif字体) plt.rcParams['axes.unicode_minus'] = False # Passo 2 (Resolver o problema de exibição do sinal negativo dos eixos negativos) %matplotlib inline x = np.arange(0, math.pi*2, 0.05]) y = np.sin(x) fig = plt.figure() ax = fig.add_axes([0,0,1,1]) ax.plot(x,y) ax.set_title("Onda Seno") ax.set_xlabel('Ângulo') ax.set_ylabel('Seno') plt.show()
Exibição de Saída conforme Mostrado Abaixo -