Produção de gráficos para Matplotlib usando o estilo Cyberpunk

O pacote cyberpunk incrementa o estilo visual dos gráficos em Python com apenas 3 linhas adicionais de código. Ele foi construído sobre matplotlib por Dominik Haitz, e está disponível no GitHub.

O primeiro passo para sua utilização é a instalação, que pode ser feita no ambiente Jupyter Notebook (como esse post) com um comando mágico, com a seguinte linha de código:

!pip install -q mplcyberpunk

A seguir, importamos os pacotes:

import matplotlib.pyplot as plt
import numpy as np
import mplcyberpunk

Vamos criar uma função auxiliar para produzir o mesmo gráfico em diferentes configurações:

def graficar():

    plt.plot([1, 3, 9, 5, 2, 1, 1], marker='o')
    plt.plot([4, 5, 5, 7, 9, 8, 6], marker='o')

Primeiro apresentamos a figura com as definições padrões matplotlib:

graficar()

png

Agora mudamos o estilo para cyberpunk e refazemos a mesma figura para comparação:

plt.style.use("cyberpunk")
graficar()

png

O próximo passo é adicionar o efeito de brilho com add_glow_effects, veja o código:

graficar()
mplcyberpunk.add_glow_effects()

png

Note que atualmente esse efeito está disponível apenas para linhas. O passo a passo de sua implementação pode ser visto aqui.

Ambos os efeitos de brilho podem ser controlados separadamente com as funções:

  • make_lines_glow - para o brilho das próprias linhas;
  • add_underglow - para a área sob as linhas.

Para exemplifica-los, vamos criar outra função gráfica:

def graficar2():

  x = np.linspace(-5, 5, num=120)

  functions = {
      'sen(x)' : np.sin(x),
      'sen(x)+x' : np.sin(x)+x,
      'sen(x)*x' : np.sin(x)*x,
      'sen(x)/x' : np.sin(x)/x
  }

  for key, fun in functions.items():
    plt.plot(x, fun, label=key)

  plt.legend()

E seguem os resultados:

graficar2()

plt.title('Apenas o estilo gráfico Cyberpunk');

png

graficar2()

mplcyberpunk.make_lines_glow()

plt.title('Estilo + brilho das linhas');

png

graficar2()

mplcyberpunk.make_lines_glow()
mplcyberpunk.add_underglow()

plt.title('Estilo + brilho das linhas e sob as linhas');

png

Edit this page

Felipe N. Schuch
Felipe N. Schuch
Application Engineer

Possuo experiência na aplicação e também no desenvolvimento de ferramentas computacionais capazes de resolver problemas complexos, além de realizar o processamento, visualização e comunicação dos dados produzidos por essas soluções.

Próximo
Anterior

Relacionados