Trilha Estatistica
Visualizando Dados·Licao 8/24
Modulo 3

Histograma em texto

Trilha Estatistica, dentro da Oficina de Dados.

Um histograma é uma representação visual da distribuição dos dados. Cada barra representa uma faixa de valores e sua altura mostra a frequência. Mesmo sem bibliotecas gráficas, podemos criar histogramas em texto usando caracteres como "#".

A ideia é simples: para cada categoria ou faixa, imprima uma linha com caracteres "#" proporcionais à frequência. Se a nota 5 aparece 7 vezes, imprimimos 7 caracteres "#". Isso é um histograma em ASCII.

Para tornar o gráfico mais legível, podemos normalizar as barras, por exemplo, fazendo a maior barra ter 20 caracteres e as outras serem proporcionais. Assim, independente dos números absolutos, o gráfico sempre cabe na tela.

Essa técnica é surpreendentemente útil no dia a dia. Em scripts de análise, relatórios por email ou logs de sistema, um gráfico em texto comunica padrões rapidamente sem dependências externas.

Criar visualizações em texto também é um excelente exercício de programação. Você pratica loops, formatação de strings e raciocínio proporcional, habilidades que serão muito úteis quando migrar para bibliotecas gráficas como matplotlib.

Exemplo:

dados = {"Jan": 15, "Fev": 22, "Mar": 18, "Abr": 30, "Mai": 25}

# Histograma simples
print("Vendas por mês:")
for mes, vendas in dados.items():
    barra = "#" * vendas
    print(mes, "|", barra, vendas)

print()

# Histograma normalizado (max = 20 caracteres)
max_val = max(dados.values())
print("Vendas normalizadas:")
for mes, vendas in dados.items():
    tamanho = int(vendas / max_val * 20)
    barra = "#" * tamanho
    print(mes, "|", barra, vendas)

O histograma em texto mostra visualmente a distribuição. A versão normalizada garante que o gráfico sempre fique legível.

?

Desafio guiado

Crie um histograma em texto para a distribuição de vendas por faixa de valor. Normalize as barras para que a maior tenha 25 caracteres "#".

  1. Classifique cada venda em uma faixa (0-99, 100-199, 200-299, 300+).
  2. Conte a frequência de cada faixa em um dicionário `faixas`.
  3. Calcule o valor máximo para normalizar.
  4. Imprima o histograma normalizado.

Saida esperada

Distribuição de vendas: 0-99 | ##################### 4 100-199 | ######################### 5 200-299 | ##################### 4 300+ | ###### 1

Dica

Use if/elif para classificar cada venda na faixa certa. Para normalizar: int(freq / max_freq * 25).

Pratique no navegador

Carregando ambiente Python...

Resumo da lição

Histogramas em texto são uma forma rápida de visualizar distribuições sem dependências externas. Normalize para manter a legibilidade.