Matplotlib: средний уровень

Границы осей, деления и логарифмическая шкала

Задавайте границы осей, выбирайте положение и подписи делений и переходите на логарифмическую шкалу с set_yscale.

Введение

Matplotlib сам выбирает границы осей и деления, но часто вы знаете лучше. set_xlim и set_ylim задают видимый диапазон, set_xticks определяет, где стоят деления и что на них написано, а set_yscale("log") превращает рост с удвоением в прямую линию.

Число пользователей удваивается каждую неделю, поэтому на обычной оси первые недели выглядят плоскими, а последние резко взлетают. На логарифмической шкале каждое удвоение занимает одинаковую высоту, линия прямая и каждая неделя читается. set_xticks(x, labels) ставит по делению на неделю с подписями W1, W2 и так далее; set_xlim оставляет немного места по краям.

Интерактивный визуализатор

Включайте и выключайте логарифмическую шкалу. На обычной оси первые недели прячутся у нуля, а на логарифмической каждое удвоение занимает одинаковую высоту.

Запускаемый пример Matplotlib

Matplotlib
Запустить код →
main.py
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()
Получить кнопку запуска для этого примера График, который рисует этот код
Границы осей, деления и логарифмическая шкала