Límites de ejes, marcas y escala logarítmica
Fija los límites de los ejes, elige posición y texto de las marcas y cambia a escala logarítmica con set_yscale.
Introducción
Matplotlib elige los límites y las marcas de los ejes por ti, pero a menudo tú sabes más. set_xlim y set_ylim eligen el rango visible, set_xticks elige dónde van las marcas y qué dicen, y set_yscale("log") hace que un crecimiento que se duplica parezca una línea recta.
Los usuarios se duplican cada semana, así que en un eje normal las primeras semanas parecen planas y las últimas se disparan. En escala logarítmica cada duplicación ocupa la misma altura, la línea es recta y todas las semanas se leen bien. set_xticks(x, labels) pone una marca por semana con el nombre W1, W2, etc.; set_xlim deja un poco de espacio en los extremos.
Visualizador interactivo
Activa y desactiva la escala logarítmica. En un eje normal las primeras semanas se esconden cerca de cero; en escala log cada duplicación ocupa la misma altura.
Ejemplo de Matplotlib ejecutable
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1, 11)
users = 50 * 2.0 ** x
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, users, marker="o")
ax.set_yscale("log")
ax.set_xlim(0.5, 10.5)
ax.set_xticks(x, [f"W{i}" for i in x])
ax.set_xlabel("Week")
ax.set_ylabel("Users (log scale)")
ax.set_title("Users double every week")
plt.show()
