Jump to content

Imagem como Background de um Gráfico?


Thanael

Postagens Recomendadas

  • Pessoal da TecnoSpeed

Será que é possivel adicionarmos Imagem como fundo de um gráfico através do Python ?

Durante esse post vou lhe mostrar que é possivel sim e como realizar. Mas antes disso muitos devem estar se perguntando "Por que eu faria isso ? Não vejo muita utilidade ...

Utilidades

Algumas utilidades simples para isso seriam. 

  • Marca d'agua de sua empresa: Pode adicionar a logo de sua empresa nos gráficos de seus relatórios. 
  • Facilitar no entendimento: Existem gráficos que ao adicionar imagem de fundo se torna mais fácil de realizar a leitura do mesmo e entende-lo.  Exemplo - Matriz BCG (Link)
  • Aprimorar suas visualizações: A adição de imagens ao seu gráfico podem lhe abrir um leque de possibilidades para melhorar suas visualizações. 

Desenvolvimento

Existem várias Bibliotecas que realizam isso, porém neste post vou mostrar como realizar isso através do Plotly, portanto vamos parar de enrolação e mostrar o código.

  • Importação das bibliotecas e criação do nosso DataFrame
    import plotly.express as px  #pip install plotly
    from plotly.subplots import make_subplots
    import matplotlib.pyplot as plt #pip install matplotlib
    import base64
    import pandas as pd # pip install pandas
    
    # Criar os dados que usaremos neste exemplo
    df = pd.DataFrame({
                'produto':['A','B','C','D','E','F','G','H'],
                'crescimento do mercado':[0.7,0.5,0.1,0.2,0.5,0.9,0.4,0.1],
                'participação no mercado':[0.9,0.1,0.8,0.4,0.7,0.4,0.3,0.2]
                })
  • Criar o Gráfico de Dispersão (Scatter Plot)
    fig = px.scatter(df , 
                    x = 'participação no mercado',
                    y = 'crescimento do mercado',
                    text="produto",
                    width = 900,
                    height = 600,
                    title= 'Matriz BCG'
                    )
    
    # Aumentar o Tamanho das marcações
    fig.update_traces(marker_size=14,textposition='top center')
    
    fig.update_xaxes(range=[1,0], row=1, col=1)
    fig.update_yaxes(range=[0,1], row=1, col=1)
  • Adicionar a Imagem de Fundo - Documentação da biblioteca.
    # Realizar a leitura da imagem
    bcg_file = 'bcg.png' # Caminho da Imagem
    bcg = base64.b64encode(open(bcg_file, 'rb').read())
    
    fig.update_layout(
        # Adicionar a Imagem como Background do Gráfico
        images = [
            dict(
                source='data:image/png;base64,{}'.format(bcg.decode()),
                xref="paper", yref="paper",
                x=0, y=1,  #position of the upper left corner of the image in subplot 1,1
                sizex=1, sizey=1, #sizex, sizey are set by trial and error
                xanchor="left",
                yanchor="top",
                sizing="stretch",
                layer="below",
                opacity=0.6,
                )]  
    )
    fig.show()
  • Resultado Final.
    image_plot.png

Importância de melhorar a visualização

Abaixo vou lhe mostrar um comparativo entre dois gráficos cujo objetivo é mostrar uma espécie de Matriz BCG

  • Sem melhorias na visualização
    old_plot.png
  • Com Melhorias simples na Visualização
    newplot (3).png

Melhorar a visualização faz toda a diferença! 

Espero que esse conteúdo lhe ajude, também sinta-se a vontade para colaborar comentando dicas de melhorias de visualizações que você utiliza em seus gráficos.

  • Curtir 2
  • Amei 1
Link to comment
Compartilhe em outros sites

  • Douglas Garcia mudou o título para Imagem como Background de um Gráfico?

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...