O que realmente acontece quando você desenha um logaritmo
A função logarítmica inversa a exponencial, isso todo mundo já sabe. O que pouca gente explica direito é o que acontece quando você tenta plotar graficos da função logaritmica no dia a dia e se depara com comportamentos estranhos perto de zero. Eu já perdi horas entendendo por quê uma curva supostamente simples parecia "quebrar" em certos intervalsos de visualização.
Entendendo graficos da função logaritmica na prática
A forma padrão é f(x) = log_a(x), onde a base a precisa ser positiva e diferente de 1. Quando a > 1, a função cresce. Quando 0 < a < 1, ela decresce. O domínio é sempre x > 0. A imagem abrange todos os reais. Existe uma assíntota vertical em x = 0 e um cruzamento fixo com o eixo x no ponto (1, 0), independente da base. Essas propriedades parecem triviais até você tentar implementar algo que precise lidar com valores próximos de zero. O que as pessoas costumam perder: a taxa de crescimento do logaritmo diminui drasticamente conforme x aumenta. Isso significa que, visualmente, a curva se achata muito rápido. Para bases maiores que 10, quase não há diferença perceptível entre log(100) e log(1000) num gráfico com escala linear convencional. É por isso que gráficos logarítmicos são tão usados em eixos Y em áreas como acústica (dB) e sismologia (Richter) — não porque os dados sejam logarítmicos, mas porque a compressão visual permite ver variações em ordens de grandeza diferentes no mesmo plot.
Vou citar um problema específico que tive recentemente. Estava construindo um gráfico de logaritmo natural para visualizar a queda de concentração de um princípio ativo em função do tempo, com dados que iam de 0,001 mg/L a 50 mg/L. O problema é que, ao usar escala linear no eixo Y, os pontos abaixo de 1 mg/L ficavam todos aglomerados perto do eixo X, impossíveis de distinguir. A solução óbvia seria mudar para escala logarítmica no eixo Y, mas aí me deparei com outro problema: valores exatamente zero ou negativos nos dados causavam erro de domain. A worked-around foi aplicar um deslocamento aditivo antes do logaritmo — basicamente, usar log(x + epsilon), onde epsilon era um valor pequeno mas não arbitrário. Escolhi epsilon = 0,0001 mg/L, que é a sensibilidade do meu equipamento de medição. Isso evitou o erro sem distorcer significativamente os pontos já positivos. Não é uma solução elegante, mas funciona na prática quando seus dados reais têm limitações instrumentais. Outro detalhe que merece atenção: a mudança de base. Logaritmna base 10, logaritmo natural (base e) e logaritmo binário (base 2) produzem curvas com formas idênticas, apenas escalonadas verticalmente. A relação é log_a(x) = ln(x) / ln(a). Se você precisa trocar de base no gráfico, basta multiplicar toda a curva por 1/ln(a). Isso é útil quando, por exemplo, você tem dados processados em base 2 (comum em ciência da computação) e quer plotá-los numa folha de cálculo que só converte automaticamente para base 10 ou e.
👉 Clique no botão abaixo para saber mais sobre o assunto!
O gráfico de uma função logarítmica também pode ser transformado horizontal e verticalmente. F(x) = log_a(x - h) + k desloca a assíntota vertical para x = h e a curva inteira k unidades para cima. O domínio passa a ser x > h. Isso é comum quando o modelo teórico exige um cutoff. Mas cuidado: deslocamentos horizontais afetam o domínio de forma não intuitiva. Reduzir h para valores negativos amplia o domínio, o que pode parecer contraintuitivo. Se você for plotar isso manualmente, aqui vai o que eu faço. Primeiro, marque o ponto (1, 0) se a assíntota estiver em x = 0. Depois, escolha três ou quatro valores de x que cubram diferentes ordens de grandeza — 0,1, 1, 10, 100 é um bom conjunto padrão. Calcule os logaritmos correspondentes e trace. Para bases diferentes de 10 e e, use a fórmula de mudança de base. Um plotador rápido como Python com matplotlib, GeoGebra ou até uma calculadora gráfica séria resolve em segundos. O processo que levaria cerca de 20 minutos desenhando à mão leva cerca de 30 segundos nesses ferramentas, mas a precisão visual fica melhor também.
Há limitações que ninguém enfatiza o suficiente. Gráficos logarítmicos falham completamente quando o dado contém zeros ou negativos reais. Não existe logaritmo de zero ou de número negativo nos reais. Em contexts aplicados, às vezes se usa log(x + constante) como paliativo, mas isso introduz um viés sistemático que distorce a interpretação. Se mais de 5% dos seus dados são zero ou negativos, considere outras transformações — raiz quadrada, Box-Cox, ou simplesmente trabalhar com diferenças absolutas em vez de logaritmos. Outro ponto: a assíntota vertical em x = 0 é um fenômeno matemático, mas graficamente ela gera problemas de renderização. Algumas bibliotecas de plotagem tentam conectar pontos de forma linear entre regiões próximas e distantes da assíntota, criando linhas diagonais enganosas que parecem atravessar a assíntota. A solução é sempre truncar o gráfico num valor mínimo de x positivo e deixar claro no eixo que aqueles pontos não existem além daquele limite.
Para quem quer recursos, o GeoGebra (geogebra.org) permite construir graficos da função logaritmica interativamente, com controle deslizante para a base e parâmetros de translação. O Desmos (desmos.com) também é sólido e mais leve. Para uso programático, a biblioteca matplotlib do Python com a função semilogx() ou semilogy() aplica escala logarítmica automaticamente num dos eixos, o que economiza tempo e evita erros de escala manual. O básico é isso. A função logarítmica é simples na definição, mas os detalhes práticos de plotagem — domínio restrito, assíntota, sensibilidade a mudanças de base, tratamento de zeros — são onde as coisas começam a dar errado sem aviso. Conhecer esses pontos evita retrabalho e interpretações equivocadas dos gráficos.