HOWTO · Matplotlib

Como mostrar a grade Pyplot em Matplotlib

Ele demonstra como desenhar uma grade em um terreno em Python Matplotlib. Utiliza a função grid() para desenhar uma grade e explica como mudar a cor da grade e o tipo de linha.

Nesta página

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