Como conectar pontos de dispersão com linha em Matplotlib

Suraj Joshi 15 fevereiro 2024
  1. Chamar show() depois de chamar tanto scatter() como plot()
  2. matplotlib.pyplot.plot() Função com o Atributo linetyle
  3. Palavra-chave zorder para alterar a ordem de sorteio
Como conectar pontos de dispersão com linha em Matplotlib

Podemos conectar pontos de scatter com uma linha chamando show() depois de termos chamado tanto scatter() como plot(), chamando plot() com a linha e atributos de ponto, e utilizando a palavra-chave zorder para atribuir a ordem de desenho.

Chamar show() depois de chamar tanto scatter() como plot()

O matplotlib.pyplot.scatter(x, y)com x como uma seqüência de coordenadas x e y como uma seqüência de coordenadas y cria um gráfico de pontos de dispersão. Para conectar esses pontos do gráfico de dispersão em ordem, chamar matplotlib.pyplot.plot(x, y) manter x e y o mesmo que os passados para a função scatter().

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.scatter(x, y)
plt.plot(x, y)
plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
figure.tight_layout()

Resultado:

Pontos Scatterplot ligados com linha_1

matplotlib.pyplot.plot() Função com o Atributo linetyle

Também podemos conectar os pontos scatterplotplot com a linha chamando apenas a função matplotlib.pyplot.plot() função juntamente com o atributo linetyle.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.plot(x, y, linestyle="solid", color="blue")
plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
figure.tight_layout()

Resultado:

Pontos Scatterplot ligados com linha utilizando parâmetros de estilo de linha e cor

Da mesma forma, também podemos tentar outros estilos de linhas diferentes

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.plot(x, y, "xb-")
plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()

Resultado:

Pontos Scatterplot ligados com linha usando parâmetros de estilo de linha e cor_azul

Palavra-chave zorder para alterar a ordem de sorteio

Podemos utilizar a palavra-chave zorder para definir a ordem do desenho na figura. Atribuiremos diferentes ordens para plot e scatter e então inverteremos as ordens para mostrar diferentes comportamentos de ordem de desenho.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.scatter(x, y, color="r", zorder=1)
plt.plot(x, y, color="b", zorder=2)

plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")

plt.show()

Resultado:

Pontos de dispersão conectados com linha utilizando zorder

plot() tem a ordem de 2, maior do que a ordem de scatter(), portanto, o gráfico de dispersão está no topo da linha.

Se invertermos a ordem, então o gráfico de linha estará no topo do gráfico de dispersão.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.scatter(x, y, color="r", zorder=2)
plt.plot(x, y, color="b", zorder=1)

plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")

plt.show()

Resultado:

Pontos de dispersão ligados com linha utilizando zorder 1

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artigo relacionado - Matplotlib Scatter