Como mostrar a grade Pyplot em Matplotlib
- Desenhe um gráfico normal em Matplotlib
-
Utilize
grid()
em um terreno em Matplotlib - Alterar os Atributos da Grade em Matplotlib
- 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:
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:
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:
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: