English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste capítulo, vamos aprender como criar múltiplos subgráficos no mesmo canvas.
A função subplot() retorna o objeto axes na posição da grade fornecida. A assinatura dessa função é -
# Nome do arquivo: example.py # Copyright: 2020 By w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 plt.subplot(subplot(nrows, ncols, index)
No gráfico atual, essa função cria e retorna um objeto Axes na posição de índice da grade ncolsxaxes em nrows. O índice começa de1até nrows * ncols, aumentando em ordem de linha. Se nrows, ncols e index forem todos menores que10O índice também pode ser fornecido como um único, conectado, ou três números.
Por exemplo, subplot(2, 3, 3) e subplot(233) criam um eixo no canto superior direito da figura, ocupando metade da altura da figura e um terço da largura da figura.
A criação de subplots remove qualquer subplot pré-existente que se sobreponha, em vez de compartilhar limites.
Veja o exemplo de código a seguir:
# 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 # Exibir configuração de chinês... plt.rcParams['font.sans-serif'] = ['SimHei'] # Passo um (substituição de sans-em estilo serif) plt.rcParams['axes.unicode_minus'] = False # Passo dois (solução para o problema de exibição do sinal negativo do número negativo no eixo) Texto original de 【立地货】,reprodução comercial, entre em contato com o autor para obter permissão, uso não comercial, mantenha o link original # Plot a line, implicitly creating a subplot (111) plt.plot([1,2,3]) # Now create a subplot which represents the top plot of a grid with 2 rows and 1 column. # Since this subplot will overlap the first, the plot (and its axes) previously created, will be removed plt.subplot(211) plt.plot(range(12)) plt.subplot(212, facecolor='y') # cria 2nd subplot com fundo amarelo plt.plot(range(12)) plt.show()
Executar o código de exemplo acima, obter os seguintes resultados:
# A função add_subplot() da classe figure não cobre o gráfico existente, veja o código a seguir -
# 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 # Exibir configuração de chinês... plt.rcParams['font.sans-serif'] = ['SimHei'] # Passo um (substituição de sans-em estilo serif) plt.rcParams['axes.unicode_minus'] = False # Passo dois (solução para o problema de exibição do sinal negativo nas escalas negativas) fig = plt.figure() ax1 = fig.add_subplot(111) ax1.plot([1,2,3]) ax2 = fig.add_subplot(221, facecolor='y') ax2.plot([1,2,3]) plt.show()
Executar o código de exemplo acima, obter os seguintes resultados:
Pode-se adicionar uma inserção gráfica no mesmo canvas gráfico adicionando outro objeto eixo no mesmo gráfico. Veja a implementação do código a seguir -
# 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-em estilo serif) plt.rcParams['axes.unicode_minus'] = False # Passo dois (solução para o problema de exibição do sinal negativo nas escalas negativas) x = np.arange(0, math.pi*2, 0.05) fig = plt.figure() axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # eixos principais axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # eixos de inserção y = np.sin(x) axes1.plot(x, y, 'b') axes2.plot(x, np.cos(x), 'r') axes1.set_title('Seno') axes2.set_title("Cosseno") plt.show()
Executar o código de exemplo acima, obter os seguintes resultados: