Escala logarítmica Python (log scale python).

En este tutorial explicamos cómo graficar con escala logarítmica en Python, usando matplotlib (log scale python). La escala logarítmica es muy útil cuando tienes datos con valores muy diferentes, es decir, que tengan varios órdenes de magnitud de diferencia.

Escala logarítmica Python

Resumen de la escala logarítmica en Python.

A continuación te damos un resumen, más adelante explicamos con mayor detalle si lo requieres.

¿Qué es la escala logarítmica en una gráfica?

Es una escala que se basa en el logaritmo de un número. Básicamente se calcula el logaritmo base 10 del dato a graficar, luego se grafica su resultado. Mostrando en la escala un 10 elevando a una potencia.

Grafica log python

¿Para qué sirve la escala logarítmica?

La escala logarítmica es de gran utilidad en la visualización de datos que son muy diferentes uno de otro. Es decir, que tienen varios órdenes de magnitud de diferencia.

Por ejemplo, en tus datos tienes números entre 0 y 1. Pero con varios ordenes de magnitud de diferencia como: 1, 0.5, 0.1, 0.001, 0.00005, 0.00000007, etc.

Si graficamos ese tipo de datos en una gráfica normal, no veremos detalles en los números más pequeños. Pero con una escala logarítmica, es posible ver mejor la forma de la gráfica.

¿Cuándo debo agregar una escala logarítmica?

Se recomienda agregar escala logarítmica a una gráfica, cuando la escala normal no logra representar una buena visualización de los datos. Debido a que el valor de los elementos tiene varios ordenes de magnitud de diferencia.

¿Cómo agregar escala logarítmica en Python, matplotlib?

Agregar una escala logarítmica en Python es muy sencillo. Si estamos graficando con matplotlib, podemos decidir si solo queremos uno de los ejes en escala logarítmica o los dos ejes.

Para agregar la escala logarítmica en el eje X escribimos el siguiente código:

plt.xscale(“log”)

Y para el eje Y:

plt.yscale(“log”)

Y con eso tenemos la escala logarítmica en Python, usando matplotlib.

Agregando escala logarítmica en Python, con Matplotlib.

A continuación crearemos una gráfica en base a una ecuación. En esta grafica notaremos que no se aprecian bien los datos, así que usaremos la escala logarítmica en el eje Y, para tener una mejor visualización.

Primero crearemos los datos a graficar. En este caso, graficaremos la siguiente ecuación:

El valor de x, serán los números consecutivos desde el 1 hasta el 100.

Mientras que en el eje Y estará el resultado de la ecuación.

Código para graficar.

Para hacer la gráfica, primero importamos la librería matplotlib.

import matplotlib.pyplot as plt

Luego creamos una variable tipo arreglo para el eje X. Le daremos valores desde el 1 hasta el 100 usando el comando range.

import matplotlib.pyplot as plt

x = range(1, 101)

También creamos una variable tipo arreglo vacía para el eje Y, a la cual le agregaremos datos usando un ciclo for. Y resolviendo la ecuación.

import matplotlib.pyplot as plt

x = range(1,101)
y=[]

for i in x:
   res = 1 / (i**2)
   y.append(res)

Luego la graficamos y con el siguiente código.

import matplotlib.pyplot as plt

x = range(1,101)
y=[]

for i in x:
   res = 1 / (i**2)
   y.append(res)

plt.plot(x,y)
plt.xlabel("Escala Normal")
plt.ylabel("Escala Normal")
plt.show()

Una explicación más amplia sobre como graficar, puedes verla en este enlace.

Así queda la gráfica:

No podemos ver mucho detalle para valores pequeños. Pero si agregamos la escala logarítmica si podremos.

Agregando log scale Python y Matplotlib..

Para poner la escala logarítmica en el eje x y en el eje y usamos el comando:

plt.yscale(“log”)

Así quedaría el código, solo usaremos la escala logarítmica en el eje Y, que es donde lo necesitamos.

import matplotlib.pyplot as plt 

x = range(1,101)
y=[] 

for i in x:
   res = 1 / (i**2)
   y.append(res) 

plt.plot(x,y)
plt.yscale("log")
plt.xlabel("Escala Logarítmica")
plt.ylabel("Escala Normal")
plt.show()

Y esta es la gráfica con escala logarítmica en el eje Y.

Escala logarítmica Python

Para más tutoriales de Python ve a la sección de Python.

O bien puedes ver la documentación oficial.