Crie gráficos para conhecer melhor seus clientes com Phyton
18 de maio de 2025
Rafael Colucci

Crie gráficos para conhecer melhor seus clientes com o Phyton, e obtenha melhores resultados comerciais, a partir do uso de dados em vendas!

Sabemos que, utilizar dados em vendas, muita vezes envolve processos simples e rápidos de realizar.

E aqui estamos a trazer uma série de artigos, para você conhecer um framework básico para aplicar dados em qualquer processo de vendas.

 

Simplificando decisões em vendas com Machine Learning

Quatro passos que simplificam a tomada de decisão em vendas com Machine Learning

No primeiro artigo desta série, trouxe alguns insights sobre como você pode simplificar a tomada de decisões em vendas ao utilizar Machine Learning, e para isso, apresentei a imagem acima com 4 passos básicos de aplicação de dados em vendas.

Neste artigo vou explorar um pouco mais o segundo passo Crie algumas Visualizações de Dados para te ajudar a entender como gráficos simples criados no Phyton.

Para facilitar seu trabalho, vou fornecer aqui todos os códigos necessários para você construir estas visualizações utilizando o Phyton.

Caso você prefira utilizar outra ferramenta, como o Excel, não tem problema!

O importante é entender que a partir de visualizações simples você poderá tomar decisões importantes em seus processos comerciais.

Crie gráficos para conhecer melhor seus clientes com Data Storytelling

Antes de falarmos de código, e iniciar a criação de nossos gráficos, reforço a importância utilizar conceitos de Data Storytelling para melhorar a visualizar de seus dados.

O principal objetivo de um gráfico é facilitar o entendimento das informações por parte das pessoas, e para isso devemos focar em sua simplicidade, utilizar cores adequadas e fazer uso correto de elementos gráficos como legendas e linhas de grade.

Particularmente, sempre busco reduzir o máximo de distrações em meus gráficos e até mesmo slides do Power Point, para que quem esteja assistindo consiga focar rapidamente na informação adequada.

Por exemplo, veja a diferença entre estes dois gráficos representando os mesmos dados. É muito fácil identificar quais regionais estão com maior e menor desempenho e facilmente entender qual delas necessita de um ajuste em sua estratégia comercial.

Crie gráficos para conhecer melhor seus clientes com data storytelling

Dois gráficos representando os mesmos dados contam histórias de formas diferentes.

Estas dicas, e muitas outras você encontra em nossa sessão sobre Comunicação de Dados.

Crie gráficos para conhecer melhor seus clientes com Phyton

Vamos agora explorar algumas possibilidades de criação de gráficos utilizando o Phyton, para isso, vou explicar um pouco mais os objetivos de cada gráfico e a estrutura de código necessária para criá-los.

Assim, vamos começar recordando os dados que possuímos em nossas bases de dados, veja a imagem abaixo.

Crie gráficos para conhecer melhor seus clientes base de dados utilizada

Base de dados com informações sobre o comportamento de cada cliente em uma campanha de marketing.

Analisar uma base de dados pequena é um trabalho fácil e exige pouco trabalho para entender o comportamento do seu cliente.

Mas o que você faria para responder às perguntas abaixo, sabendo que sua base conta com 1000 clientes?

  1. Quantos clientes demonstraram, ou não, interesse em nossa campanha?
  2. Quantos clientes responderam à proposta?
  3. Quantos clientes que não demonstraram interesse, possuem objeções que podemos trabalhar com nossa equipe técnica?

Vamos responder a primeira pergunta rapidamente com o código abaixo.

# Importando bibliotecas

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import chi2_contingency
from sklearn.tree import DecisionTreeClassifier, plot_tree
from sklearn import tree
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import classification_report

# 1. Gerando base de dados
np.random.seed(42)

n_samples = 1000

dados = pd.DataFrame({
    'Demonstrou_Interesse': np.random.choice(['Sim', 'Não'], size=n_samples, p=[0.7, 0.3]),
    'Respondeu_Proposta': np.random.choice(['Sim', 'Não'], size=n_samples, p=[0.5, 0.5]),
    'Tem_Objeções': np.random.choice(['Sim', 'Não'], size=n_samples, p=[0.4, 0.6])
})

def definir_acao(row):
    if row['Demonstrou_Interesse'] == 'Não':
        return 'Aquecer Lead'
    elif row['Respondeu_Proposta'] == 'Sim':
        return 'Fechar Direto'
    elif row['Tem_Objeções'] == 'Sim':
        return 'Trabalhar Objeções'
    else:
        return 'Fechar Venda'

dados['Ação_Final'] = dados.apply(definir_acao, axis=1)

print(dados.head())

# Quantos clientes demonstraram interesse?

# Cores suaves com contraste (ex: azul claro e azul escuro)
cores = ['#a6c8ff', '#00539b']  # azul claro e azul escuro

plt.figure(figsize=(6, 4))
ax = sns.countplot(
    x='Demonstrou_Interesse',
    data=dados,
    palette=cores
)

# Títulos dos eixos
ax.set_xlabel("Demonstrou interesse?")
ax.set_ylabel("Número de Clientes")

# Título do gráfico
ax.set_title("Distribuição - Demonstrou Interesse")

# Remover linhas de grade do meio
ax.grid(False)

# Remover bordas superiores e laterais (opcional para visual mais limpo)
sns.despine()

plt.tight_layout()
plt.show()

O código pode parecer um pouco longo, contudo é importante ressaltar que inicialmente carregamos todas as bibliotecas necessárias e em seguida criamos uma base de dados.

Assim, você poderá replicar todo o processo que vamos realizar em todos os artigos desta série.

Mas Colucci, eu jamais seria capaz de criar um código deste sozinho! Sem problemas, basta voce entender que tipo de análise vai realizar que até mesmo o ChatGPT outra IA te ajuda com o código.

Crie gráficos para conhecer melhor seus clientes a partir de gráficos simples no Phyton

Gráfico de Colunas criado rapidamente no Phyton para analisar o comportamento de clientes.

Veja que no gráfico acima, utilizei de contraste de cores para visualizar rapidamente os dados, e removi todas as distrações possíveis.

Assim, a partir deste gráfico somos capazes de visualizar que um pouco mais de 200 clientes não demonstraram interesse em nossa proposta.

Por exemplo, podemos reenviar as informações apenas para este grupo enquanto trabalhamos com os cerca e 700 clientes que responderam para avançar no fechamento.

Um gráfico simples para te ajudar a fechar mais negócios!

Agora que já respondemos a primeira pergunta, vamos responder à segunda!

Quantos clientes responderam à proposta para que eu possa fechar o mais rapidamente possível?

Assim, basta que você adicione ao código anterior as linhas abaixo.

# Quantos clientes responderam a proposta?

# Cores suaves com contraste (ex: azul claro e azul escuro)
cores = ['#a6c8ff', '#00539b']  # azul claro e azul escuro

plt.figure(figsize=(6, 4))
sns.countplot(x='Respondeu_Proposta', data=dados, palette=cores)
plt.title('Distribuição - Respondeu Proposta')
plt.tight_layout()
plt.show()

# Títulos dos eixos
ax.set_xlabel("Respondeu a Proposta?")
ax.set_ylabel("Número de Clientes")

# Remover linhas de grade do meio
ax.grid(False)

# Remover bordas superiores e laterais (opcional para visual mais limpo)
sns.despine()

Vejam que a estrutura é similar a do gráfico anterior, onde utilizamos a mesma paleta de cores, adicionamos títulos aos eixos e removemos as linhas de grade e bordas

Crie gráficos para conhecer melhor seus clientes a partir de gráficos simples no Phyton com alguns códigos

Número de clientes que responderam à proposta.

Este gráfico nos apresenta uma informação muito importante, que temos um número maior de clientes que não responderam à proposta que enviamos!

Por exemplo, nos ajuda entender quantos já podemos buscar fechar imediatamente e quantos devemos entrar em contato novamente com a proposta em mãos para tentar o fechamento.

Utilizar o Phyton para analisar as objeções dos meus clientes

Primeiramente, vamos entender quantos clientes possuem objeções com base nos dados que possuímos.

Para isso, adicione as linhas abaixo em seu código.

# Criar a tabela cruzada com normalização por linha
ct = pd.crosstab(dados['Demonstrou_Interesse'], dados['Tem_Objeções'], normalize='index')

# Definir a paleta de cores em tons de azul
palette = sns.color_palette("Blues", n_colors=ct.shape[1])

# Criar o gráfico de barras empilhadas
ax = ct.plot(kind='bar', stacked=True, color=palette, figsize=(8, 6))

# Títulos e rótulos
ax.set_title('Proporção de Objeções por Interesse', fontsize=14)
ax.set_xlabel('Demonstrou interesse?')
ax.set_ylabel('Proporção')

# Corrigir os rótulos do eixo X para "Não" e "Sim"
ax.set_xticklabels(['Não', 'Sim'], rotation=0)

# Formatar o eixo y para mostrar porcentagens
ax.yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.0%}'.format(y)))

# Remover linhas de grade
ax.grid(False)

# Remover bordas superiores e laterais
sns.despine()

# Posicionar a legenda fora do gráfico
ax.legend(title='Tem Objeções', bbox_to_anchor=(1.05, 1), loc='upper left', labels=['Não', 'Sim'])

# Ajustar o layout para acomodar a legenda
plt.tight_layout()

# Exibir o gráfico
plt.show()
Crie gráficos para conhecer melhor seus clientes a partir de gráficos simples no Phyton utilizando códigos rapidamente

Número de clientes que possuem alguma objeção a proposta enviada.

Esta informação é muito importante por que nos ajuda verificar que uma grande quantidade dos clientes possuem alguma objeção que precisa ser trabalhada antes de fecharmos o negócio.

Antes de sairmos entrando em contato com todos, seria melhor entender quantos demonstraram interesse, para podermos aproveitar este interesse para fechar mais rapidamente o negócio.

Para isso, adicione no seu código as linhas abaixo.

# Criar a tabela cruzada com normalização por linha
ct = pd.crosstab(dados['Demonstrou_Interesse'], dados['Tem_Objeções'], normalize='index')

# Definir a paleta de cores em tons de azul
palette = sns.color_palette("Blues", n_colors=ct.shape[1])

# Criar o gráfico de barras empilhadas
ax = ct.plot(kind='bar', stacked=True, color=palette, figsize=(8, 6))

# Títulos e rótulos
ax.set_title('Proporção de Objeções por Interesse', fontsize=14)
ax.set_xlabel('Demonstrou interesse?')
ax.set_ylabel('Proporção')

# Formatar o eixo y para mostrar porcentagens
ax.yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.0%}'.format(y)))

# Remover linhas de grade
ax.grid(False)

# Remover bordas superiores e laterais
sns.despine()

# Posicionar a legenda fora do gráfico
ax.legend(title='Tem Objeções', bbox_to_anchor=(1.05, 1), loc='upper left')

# Ajustar o layout para acomodar a legenda
plt.tight_layout()

# Exibir o gráfico
plt.show()
Um gráfico rápido no Phyton te ajuda a entender facilmente seus dados

Proporção de clientes que demonstraram interesse e possuem objeções a proposta.

Este gráfico nos traz uma informação muito poderosa!

A quantidade de clientes com objeções é muito parecida em clientes que demonstraram ou não interesse em nossa proposta. Isto nos ajuda a entender que é mais importante focar em cerca de metade dos clientes que possuem objeções para aumentar nossas vendas!

Conclusao: Crie gráficos para conhecer melhor seus clientes com Phyton

Vimos neste artigo o quanto que gráficos simples podem nos ajudar a tomar melhores decisões a partir de nossos dados com clientes.

Para você que pretende utilizar dados em suas estratégias e está em dúvida se conseguiria avançar com os códigos e análise, minha sugestão é que você comece analisando se seu processo está pronto para uma estratégia de dados.

Isto te ajudará a entender quais perguntas você precisará responder com suas análises, e a partir delas é possível ter ajuda de ferramentas poderosas como a inteligência artificial.

Lembrando que tudo que apresentamos aqui pode ser feito também no Excel, com algumas ressalvas para bases de dados muito grandes que podem exigir muito processamento, e que ferramentas como o R e o Phyton podem te ajudar facilmente.

Para você que quer aprender mais sobre o tema, aconselho estar sempre atendo ao nosso Canal do Youtube e página de cursos da Udemy, onde lançamos conteúdos pagos e gratuitos para você avançar com sua aprendizagem.

Até a próxima!

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *