Como mostrar a grade Pyplot em Matplotlib

Como mostrar a grade Pyplot em Matplotlib

mo abdelazim Jul-18, 2021 Nov-01, 2020 Matplotlib Matplotlib Grid
  1. Desenhe um gráfico normal em Matplotlib
  2. Utilize grid() em um terreno em Matplotlib
  3. Alterar os Atributos da Grade em Matplotlib
  4. Desenho de Linhas Verticais ou Horizontais

Este tutorial explica como desenhar uma grade em cima de um terreno em Python Matplotlib. Utilizaremos a função grid() para conseguir isto. Ele também demonstra como utilizar os argumentos grid() function para personalizar a cor e forma da grade e até mesmo desenhar apenas as linhas verticais ou horizontais.

Desenhe um gráfico normal em Matplotlib

Vamos começar criando duas listas para representar os valores x e y e usá-las para desenhar uma trama. Chame a função plot() e passe as listas x e y como argumentos, depois chame a função show().

Utilize as funções title(), xlabel e ylabel() para adicionar título e rótulos à sua trama para torná-la compreensível.

from matplotlib import pyplot as plt

x = [10,20,30,40,50,60,70,80,90,100,110]
y = [200,300,300,350,380,450,500,500,520,525,530]

plt.title('MyPlot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')

plt.plot(x, y)
plt.show()

Resultado:

Lote Normal Sem Grade em Matplotlib

Mas uma trama normal parece aborrecida e faltando algo. Agora, precisamos acrescentar uma grade ao nosso enredo.

Utilize grid() em um terreno em Matplotlib

Vamos utilizar a função Matplotlib grid() para desenhar uma grade no topo do terreno.

Precisamos chamar a função grid() antes de show(), e isso irá desenhar uma grade no terreno anterior.

Veja o código abaixo.

from matplotlib import pyplot as plt

x = [10,20,30,40,50,60,70,80,90,100,110]
y = [200,300,300,350,380,450,500,500,520,525,530]

plt.title('MyPlot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')

plt.plot(x, y)
plt.grid()
plt.show()

Resultado:

Grade simples em Matplotlib

Alterar os Atributos da Grade em Matplotlib

A função grid() aceita argumentos para personalizar a cor e o estilo da grade. Podemos chamar grid() assim grid(color='r', linestyle='dotted', linewidth=1) para obter uma grade com linhas vermelhas, pontilhadas e finas.

from matplotlib import pyplot as plt

x = [10,20,30,40,50,60,70,80,90,100,110]
y = [200,300,300,350,380,450,500,500,520,525,530]

plt.title('MyPlot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')

plt.plot(x, y)
plt.grid(color='r', linestyle='dotted', linewidth=1)
plt.show()

Resultado:

Atributos da grelha em Matplotlib

A largura da linha é do tipo de dados de flutuação, e aqui estão todos os códigos de cores e estilos de linha disponíveis para você.

Códigos de cores válidos:

código cor
b azul
g verde
r vermelho
c ciano
m magenta
y amarelo
k preto
w branco

Estilos de linha válidos:

  • -
  • --
  • -.
  • :
  • None
  • ``
  • solid
  • dashed
  • dashdot
  • dotted

Desenho de Linhas Verticais ou Horizontais

O padrão da função grid() é desenhar tanto os eixos horizontais quanto verticais, mas você pode querer personalizar isto também. Você pode utilizar o argumento do eixo para fazer isso. Chame a grid() com axis='x' para desenhar apenas as linhas verticais ou axis='y' para desenhar apenas as linhas horizontais ou axis='both' para desenhar os dois, que é o comportamento padrão.

Veja o código abaixo e sua saída.

from matplotlib import pyplot as plt

x = [10,20,30,40,50,60,70,80,90,100,110]
y = [200,300,300,350,380,450,500,500,520,525,530]

_, (a, b, c) =  plt.subplots(1,3)

a.grid(axis='y',linestyle='dotted', color='b')
a.plot(x, y)
a.set_title("axis='y'")

b.grid(axis='x',linestyle='dotted', color='b')
b.plot(x, y)
b.set_title("axis='x'")

c.grid(axis='both',linestyle='dotted', color='b')
c.plot(x, y)
c.set_title("axis='both'")

plt.show()

Resultado:

Eixo X Eixo Y Grade em Matplotlib