Границы осей, деления и логарифмическая шкала
Задавайте границы осей, выбирайте положение и подписи делений и переходите на логарифмическую шкалу с set_yscale.
Введение
Matplotlib сам выбирает границы осей и деления, но часто вы знаете лучше. set_xlim и set_ylim задают видимый диапазон, set_xticks определяет, где стоят деления и что на них написано, а set_yscale("log") превращает рост с удвоением в прямую линию.
Число пользователей удваивается каждую неделю, поэтому на обычной оси первые недели выглядят плоскими, а последние резко взлетают. На логарифмической шкале каждое удвоение занимает одинаковую высоту, линия прямая и каждая неделя читается. set_xticks(x, labels) ставит по делению на неделю с подписями W1, W2 и так далее; set_xlim оставляет немного места по краям.
Интерактивный визуализатор
Включайте и выключайте логарифмическую шкалу. На обычной оси первые недели прячутся у нуля, а на логарифмической каждое удвоение занимает одинаковую высоту.
Запускаемый пример Matplotlib
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()
