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

Interface Orientada a Objetos do Matplotlib

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 -