Calculadora de histograma
Obtenha a tabela de frequências por trás de um histograma: os valores 1, 2, 2, 3, 5, 7, 8 e 9 divididos em quatro classes de largura 2 dão contagens de 3, 1, 1 e 3. Escolha a largura ou o número de classes. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Número de intervalos
- 4
- N
- 8
- Min
- 1
- Max
- 9
- Imagem
- 8
Um histograma agrupa uma amostra numérica em classes contíguas e conta quantas observações caem em cada intervalo. Esta calculadora de histograma aceita uma lista de números finitos junto com uma largura de classe positiva ou um número inteiro positivo de classes e devolve cada faixa, a contagem bruta e a frequência relativa.
O que o histograma devolve e como as classes de mesma largura são cortadas
Um histograma é uma partição de largura igual da amplitude numérica observada, junto com o número de pontos amostrais que caem em cada intervalo. Esta calculadora não escolhe uma origem «bonita» nem encaixa as bordas em números redondos: a primeira borda é o mínimo da amostra e cada borda seguinte é deslocada por uma largura constante, de modo que duas pessoas com a mesma lista e a mesma largura ou a mesma contagem sempre obtêm a mesma tabela.
Cada classe devolvida lista um índice que começa em um, as bordas esquerda e direita, uma contagem bruta, uma frequência relativa igual à contagem dividida por n, e uma cadeia de intervalo que usa colchete semiaberto nas classes interiores e colchete fechado na última. A resposta também ecoa n, min, max, range, a largura de fato usada, o número de classes e qual método prevaleceu. Se todas as observações são idênticas a amplitude é zero, o motor colapsa para uma única classe nesse valor e não inventa classes vizinhas vazias.
Campos opcionais são omitidos em vez de preenchidos com null.
Onde uma tabela de frequências cabe no estudo, na análise e no produto
Estudantes encontram histogramas quando um laboratório pede uma tabela de frequências de medições repetidas, quando um livro mostra quatro classes iguais sobre uma série curta, ou quando precisam conferir que uma biblioteca de gráficos não deixou de fora o máximo porque a última classe ficou semiaberta. Professores podem gerar gabaritos que listam cada intervalo e sua contagem sem confiar em padrões opacos de plotagem. Analistas agrupam tempos de resposta, notas de prova, tamanhos de cesta ou leituras de sensores para ver forma, lacunas e outliers antes de escolher um modelo.
Equipes de produto e operações transformam a mesma tabela numa série de painel que outros serviços podem colocar em cache, porque a saída é determinística para uma lista e uma largura dadas. Esta página não é a regra de Scott, nem Freedman–Diaconis, nem um renderizador de gráficos: essas ferramentas escolhem uma largura ou desenham barras, enquanto esta consome uma largura ou uma contagem que você já tem e devolve as classes.
Combine-a com uma calculadora de desvio padrão ou de resumo de cinco números quando precisar de dispersão, e com uma regra dedicada de largura quando ainda tiver de escolher h. Nesta página o trabalho roda inteiramente no seu navegador.
Casos de uso
Tabelas de frequência para lição
Transforme uma série de livro em classes de mesma largura, com contagens e frequências relativas, antes de desenhar as barras à mão ou conferir um gráfico.
Latência, notas e sensores
Agrupe tempos de resposta, notas de prova ou leituras de instrumentos numa tabela estável que você possa compartilhar, colocar em cache ou comparar entre execuções.
Perguntas frequentes
Como esta calculadora de histograma escolhe as bordas das classes?
A primeira borda é o mínimo da amostra.
O que acontece se um valor não for um número?
Tokens não numéricos, Infinity e NaN nunca são forçados a zero, e a validação falha não é faturada.
Por que a última classe está fechada dos dois lados?
As classes interiores são semiabertas [left, right) para que cada borda interior pertença a uma só classe. A última é [left, right] para que o máximo amostral seja contado uma vez e não fique fora da tabela.
O que acontece se eu informar a largura e o número de classes ao mesmo tempo?
Vale a largura. A calculadora usa a largura que você informou e calcula quantas classes são necessárias para cobrir a faixa dos seus valores, do menor ao maior.
O que acontece se todos os valores forem iguais?
Não há faixa para dividir, então você recebe uma única classe nesse valor com todas as observações. A calculadora não inventa classes vazias de um lado ou do outro.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/stat/histogram \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"data":[1,2,2,3,5,7,8,9],"bin_width":2}'const res = await fetch("https://api.kit.forhosting.com/stat/histogram", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"data": [
1,
2,
2,
3,
5,
7,
8,
9
],
"bin_width": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/histogram",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"data": [
1,
2,
2,
3,
5,
7,
8,
9
],
"bin_width": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/histogram", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"data":[1,2,2,3,5,7,8,9],"bin_width":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"data":[1,2,2,3,5,7,8,9],"bin_width":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/histogram", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"data": [
1,
2,
2,
3,
5,
7,
8,
9
],
"bin_width": 2
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.histogram",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_n | 10000 |
max_abs | 1000000000000000 |
max_bins | 500 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Quando qualquer entrada não é um número finito, a tarefa falha com invalid_input, para que um rótulo solto não vire um zero silencioso. O mesmo algoritmo puro roda grátis no navegador e, pela API, a US$ 0,002 por chamada bem-sucedida.
O que o histograma devolve e como as classes de mesma largura são cortadas
Quando você informa bin_count como inteiro positivo k, a largura é a amplitude observada dividida por k, a última borda é exatamente o máximo amostral e a última classe fica fechada à direita para que a maior observação seja contada uma vez e não caia do extremo. Quando você informa um bin_width positivo, o motor toma tantas classes quanto o teto da amplitude dividida por essa largura, no mínimo uma, e a última borda pode ficar um pouco além do máximo para cobrir todos os valores. Não há jitter aleatório, semente de data nem passo de rede: ou a aritmética termina dentro dos limites publicados de comprimento, magnitude e número de classes, ou a chamada é rejeitada com invalid_input.
Contrato de entrada, rejeição do não numérico e estabilidade da atribuição
Cada token deve ser um decimal finito, com sinal opcional e expoente científico opcional; tokens vazios, booleanos, objetos, Infinity e NaN falham. Se algum elemento é não numérico, a mensagem nomeia o índice, por exemplo data[2], para que um rótulo solto numa coluna colada fique visível em vez de virar um zero silencioso. Nada é armazenado depois que a resposta retorna. O campo obrigatório é data, um array de números finitos, com aliases values, numbers, x e series para que cadernos e formulários reutilizem o mesmo contrato. Também se aceita uma cadeia de números separados por vírgulas, ponto e vírgula ou espaços quando uma caixa de texto não consegue enviar um array JSON. Você também deve enviar bin_width, um número finito positivo, ou bin_count, um inteiro positivo limitado ao máximo publicado. Se ambos estão presentes, bin_width tem prioridade e bin_count é recalculado a partir da amplitude. Data ausente, lista vazia, largura não positiva, contagem não inteira ou não positiva, lista maior que o n máximo, valor fora do teto de magnitude, ou uma largura tão pequena que o número implícito de classes ultrapassaria o máximo publicado, disparam invalid_input e não são faturados.
Onde uma tabela de frequências cabe no estudo, na análise e no produto
Desenvolvedores travam o JSON na integração contínua para que uma mudança futura nas regras de atribuição não reescreva instantâneos em silêncio. Pela API cada consulta bem-sucedida custa US$ 0,002; validação falha não é cobrada e os números são descartados após a resposta.
Casos de integração
Fixtures determinísticos de gráficos e variáveis
Trave faixas e frequências de classe nos testes para que um painel ou uma covariável discretizada não derivem quando os padrões do gráfico mudarem.
Perguntas técnicas
Qual é a diferença entre bin_width e bin_count?
bin_width é o comprimento de cada classe; o motor deriva quantas classes cobrem a amplitude. bin_count é quantas classes você deseja; o motor deriva a largura. Se ambos forem enviados, bin_width prevalece.
Quanto custa a calculadora de histograma?
A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é faturada.