Если ты работаешь с графиками в Python, то наверняка сталкивался с некрасивыми подписями на осях – слишком много знаков после запятой или неудобные числа. 📉
Сегодня разберем FormatStrFormatter – простой инструмент, который помогает красиво оформлять числа на осях!
📌 Что такое FormatStrFormatter?
Это специальный класс в matplotlib.ticker, который позволяет форматировать подписи осей (X и Y) с помощью строковых шаблонов.
✅ Можно ограничить количество знаков после запятой
✅ Можно добавить символы (%, $, °C и т. д.)
✅Можно перевести числа в научную нотацию
💡 Пример использования:
# 📌 Импортируем библиотеки
import matplotlib.pyplot as plt # Графики
import numpy as np # Математика
from matplotlib.ticker import FormatStrFormatter # Формат подписей
# 📌 Создаем данные
x = np.linspace(0, 10, 100) # 100 точек от 0 до 10
y = np.sin(x) * 10 # Синус увеличенный в 10 раз
# 📌 Создаем график
fig, ax = plt.subplots()
ax.plot(x, y, label="Синус волна") # Линия на графике
# 📌 Форматируем оси X и Y
ax.xaxis.set_major_formatter(FormatStrFormatter('%.1f')) # X с 1 знаком после запятой
ax.yaxis.set_major_formatter(FormatStrFormatter('%.2f')) # Y с 2 знаками после запятой
# 📌 Добавляем подписи и заголовок
ax.set_xlabel("Ось X (1 знак после запятой)")
ax.set_ylabel("Ось Y (2 знака после запятой)")
ax.set_title("📊 График с форматированными осями")
# 📌 Показываем график
plt.legend()
plt.show()
📖 Разбираем код по шагам
1️⃣ Генерируем данные
x = np.linspace(0, 10, 100) # 100 точек от 0 до 10
y = np.sin(x) * 10 # Считаем синус и увеличиваем масштаб
🔹 np.linspace(0, 10, 100) – равномерно создаем 100 точек.
🔹 np.sin(x) * 10 – вычисляем синус и увеличиваем масштаб.
2️⃣ Создаем график
fig, ax = plt.subplots()
ax.plot(x, y, label="Синус волна")
🔹 fig, ax = plt.subplots() – создаем область для графика.
🔹 ax.plot(x, y, label="Синус волна") – строим линию.
3️⃣ Форматируем подписи осей X и Y
ax.xaxis.set_major_formatter(FormatStrFormatter('%.1f')) # X: 1 знак после запятой
ax.yaxis.set_major_formatter(FormatStrFormatter('%.2f')) # Y: 2 знака после запятой🔹 '%.1f' – форматирует ось X, оставляя 1 знак после запятой.
🔹 '%.2f' – форматирует ось Y, оставляя 2 знака после запятой.
4️⃣ Добавляем подписи и заголовок
ax.set_xlabel("Ось X (1 знак после запятой)")
ax.set_ylabel("Ось Y (2 знака после запятой)")
ax.set_title(" График с форматированными осями") 📌 Чтобы график выглядел красиво и понятно, всегда добавляй подписи!
5️⃣ Отображаем график
plt.legend() # Показываем легенду
plt.show() # Выводим график
🔹 plt.legend() – показывает подпись графика ("Синус волна").
🔹 plt.show() – отображает график.
🔧 Дополнительные форматы FormatStrFormatter
ax.xaxis.set_major_formatter(FormatStrFormatter('%d%%')) # X в процентах
ax.yaxis.set_major_formatter(FormatStrFormatter('$%.2f')) # Y в долларах
