Curso matplotlib - Combinando gráfico de dispersão com gráfico de linhas

2 minute read

banner provisório


Utilizar o plt.plot() para gerar gráfico de dispersão com linhas talvez não seja a melhor ideia, pois a personalização dos marcadores é mais simples quando utilizamos o plt.scatter().

A melhor forma de gerar um gráfico de dispersão com linhas é combinando dois elemento gráficos separadamente, sendo um o gráfico de linha (plt.plot()) e o outro o gráfico de dispersão (plt.scatter()), o que é feito da seguinte forma:

plt.figure(figsize=(12,6))
plt.plot(horario, temperatura, c='red', linewidth=3.5)
plt.scatter(horario, temperatura, marker='s', edgecolors='k', facecolors='g', s=250, linewidths=3.5)
plt.show()

Figura 1 - Combinando gráfico de dispersão com gráfico de linhas.

gráfico de linhas e pontos desenhado com o **matplotlib** relacionando o horário e a temperatura ambiente


Ordem de plotagem

No gráfico acima (Figura 1), observe que a linha foi desenhada em cima dos pontos, enquanto que no gráfico anterior, a linha estava desenhada por baixo. Por padrão, o plt.plot() aloca a linha por de baixo dos pontos.

Quando adicionamos vários elementos gráficos, existe uma prioridade de qual ordem será utilizada para desenhar o gráfico. Entretanto, podemos controlar esta ordem de forma muito simples, através do parâmetro zorder.

O parâmetro zorder deve receber um número (int ou float) que indica a ordem de plotagem do elemento. Elementos com maior valor de zorder são desenhados por cima dos demais. Por exemplo, caso queira deixar a linha por baixo dos marcadores, basta adicionar zorder=-1 em plt.plot():

plt.figure(figsize=(12,6))
plt.plot(horario, temperatura, c='red', linewidth=3.5, zorder=-1)
plt.scatter(horario, temperatura, marker='s', edgecolors='k', facecolors='g', s=250,
          linewidths=3.5)
plt.show()

Figura 2 - Combinando gráfico de dispersão com gráfico de linhas.

gráfico de linhas e pontos desenhado com o **matplotlib** relacionando o horário e a temperatura ambiente


Ou especificar a ordem em todos os elementos (recomendado):

plt.figure(figsize=(12,6))
plt.plot(horario, temperatura, c='red', linewidth=3.5, zorder=1)
plt.scatter(horario, temperatura, marker='s', edgecolors='k', facecolors='g', s=250,
          linewidths=3.5, zorder=2)
plt.show()

Figura 3 - Combinando gráfico de dispersão com gráfico de linhas.

gráfico de linhas e pontos desenhado com o **matplotlib** relacionando o horário e a temperatura ambiente


Transparência

Também é possível adicionar transparência aos elementos gráficos, o que é feito passando um número (float) entre 0.0 (completamente transparente) e 1.0 (totalmente preenchido) através do parâmetro alpha.

Por exemplo, para deixar os marcadores com metade da sua transparência, basta passar alpha=0.5 em plt.scatter():

plt.figure(figsize=(12,6))
plt.plot(horario, temperatura, c='red', linewidth=3.5, zorder=1)
plt.scatter(horario, temperatura, marker='s', edgecolors='k', facecolors='g', s=250,
          linewidths=3.5, zorder=2, alpha=0.5)
plt.show()

Figura 4 - Combinando gráfico de dispersão com gráfico de linhas.

gráfico de linhas e pontos desenhado com o **matplotlib** relacionando o horário e a temperatura ambiente


Para deixar a linha transparente, basta passar alpha=0.5 em plt.plot():

plt.figure(figsize=(12,6))
plt.plot(horario, temperatura, c='red', linewidth=3.5, zorder=1, alpha=0.5)
plt.scatter(horario, temperatura, marker='s', edgecolors='k', facecolors='g', s=250,
          linewidths=3.5, zorder=2)
plt.show()

Figura 5 - Combinando gráfico de dispersão com gráfico de linhas.

gráfico de linhas e pontos desenhado com o **matplotlib** relacionando o horário e a temperatura ambiente


Qual é a função do parâmetro zorder?

Especificar a ordem de plotagem dos elementos gráficos.

Adicionar transparência a uma elemento do matplotlib.

Invocar o Zordon.


Qual é a função do parâmetro alpha?

Especificar a ordem de plotagem dos elementos gráficos.

Adicionar transparência a uma elemento do matplotlib.

Invocar o Alpha 5.


Anterior Próximo

Updated: