EleganPlot — надстройка над Matplotlib для элегантной, изящной визуализации.
Project description
EleganPlot 🎨
EleganPlot — это элегантная надстройка над Matplotlib для создания красивых и стильных визуализаций в Python. Библиотека предоставляет систему тем, кастомные методы построения графиков и специальные эффекты для создания профессиональных визуализаций.
✨ Основные возможности
- 🎭 Система тем — предустановленные и кастомные темы оформления
- 🌟 Эффекты свечения — создание линий с эффектом glow
- 🌈 Градиентные заливки — заливка под кривыми с градиентом
- 🎨 Градиентные фоны — фигуры с красивым градиентным фоном
- 🔧 Кастомные методы — легкое расширение функциональности
- 📊 Готовые компоненты — доверительные интервалы, мультилинии и другое
- 🎯 Простой API — знакомый интерфейс в стиле matplotlib
📦 Установка
pip install eleganplot
Или для разработки:
git clone https://github.com/yourusername/eleganplot.git
cd eleganplot
pip install -e .
🚀 Быстрый старт
import eleganplot as eplt
import numpy as np
# Создаём данные
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
# Простой график с темой
fig, ax = eplt.subplots()
ax.plot(x, y, label='sin(x)')
ax.legend()
eplt.show()
🎨 Система тем
import eleganplot as eplt
# Просмотр доступных тем
print(eplt.list_themes())
# Установка темы
eplt.set_current_theme('dark')
# Создание графика с темой
fig, ax = eplt.subplots()
ax.plot(x, y)
eplt.show()
🌟 Эффект свечения (Glow)
Создание линий с эффектом свечения:
fig, ax = eplt.subplots()
# Базовое свечение
main_line, glow_lines = ax.glow_line(x, y,
glow_color='cyan',
glow_width=5.0)
# Продвинутое свечение с настройками
main_line, glow_lines = ax.glow_line(x, y,
glow_color='orange',
glow_width=8.0,
glow_alpha=0.7,
glow_layers=20,
decay_function='gaussian')
eplt.show()
Функции затухания
'linear'— линейное затухание'exponential'— экспоненциальное затухание'gaussian'— гауссово затухание (по умолчанию)'quadratic'— квадратичное затухание'cubic'— кубическое затухание'sine'— синусоидальное затухание
🌈 Градиентные заливки
fig, ax = eplt.subplots()
# Градиентная заливка под кривой
line, gradient = ax.gradient_plot(x, y,
fill_color='blue',
alpha_coef=0.7)
# Градиент до минимума осей
line, gradient = ax.gradient_plot(x, y,
fill_color='red',
gradient_to_min=True)
eplt.show()
🎭 Градиентный фон
Создание графиков с красивым градиентным фоном:
# Простое использование с настройками по умолчанию
fig, ax = eplt.gradient_subplots(dpi=200)
ax.plot(x, y, linewidth=2, label='sin(x)')
ax.set_title('График с градиентным фоном')
ax.legend()
eplt.show()
# С кастомными цветами градиента
fig, ax = eplt.gradient_subplots(
figsize=(10, 6),
dpi=200,
gradient_colors=("#1a0033", "#330066"), # Фиолетовый градиент
)
ax.plot(x, y, color='#FF6B9D', linewidth=2)
eplt.show()
Готовые цветовые схемы
- Тёмный сине-зелёный:
("#00080a", "#042628")(по умолчанию) - Фиолетовый:
("#1a0033", "#330066") - Зелёный:
("#002200", "#004400") - Синий:
("#000033", "#001166")
🔧 Кастомные методы
Использование готовых методов
fig, ax = eplt.subplots()
# Доверительная полоса
y_mean = np.sin(x)
y_std = 0.2 * np.ones_like(x)
ax.confidence_band(x, y_mean, y_std, confidence=0.95)
# Несколько линий
y_data = [np.sin(x), np.cos(x), np.tan(x/4)]
ax.multi_line(x, y_data,
labels=['sin', 'cos', 'tan'],
colors=['red', 'blue', 'green'])
eplt.show()
Создание собственных методов
from eleganplot import custom_axes_method
@custom_axes_method("my_plot")
def my_custom_plot(ax, x, y, style='fancy', **kwargs):
"""Мой кастомный метод построения графиков."""
if style == 'fancy':
return ax._ax.plot(x, y, marker='o', linestyle='--', **kwargs)
else:
return ax._ax.plot(x, y, **kwargs)
# Использование
fig, ax = eplt.subplots()
ax.my_plot(x, y, style='fancy', color='purple')
eplt.show()
📊 Примеры использования
Научные графики
import eleganplot as eplt
import numpy as np
# Данные эксперимента
x = np.linspace(0, 10, 50)
y_true = 2 * np.exp(-x/3) * np.sin(x)
y_measured = y_true + 0.1 * np.random.randn(50)
y_error = 0.1 * np.ones_like(x)
# График с доверительным интервалом
fig, ax = eplt.subplots(figsize=(10, 6))
ax.confidence_band(x, y_measured, y_error,
confidence=0.95,
label='Измерения ±σ')
ax.plot(x, y_true, 'r--', label='Теория', linewidth=2)
ax.legend()
ax.set_title('Экспериментальные данные с доверительным интервалом')
eplt.show()
Эффектные презентационные графики
# Тёмная тема с эффектами свечения
eplt.set_current_theme('dark')
fig, ax = eplt.subplots(figsize=(12, 8))
# Несколько линий с свечением
colors = ['cyan', 'magenta', 'yellow', 'lime']
for i, color in enumerate(colors):
y = np.sin(x + i*np.pi/4) * np.exp(-x/8)
ax.glow_line(x, y,
glow_color=color,
glow_width=6.0,
glow_alpha=0.8,
linewidth=2)
ax.set_title('Эффектные линии с свечением', fontsize=16)
eplt.show()
📁 Структура проекта
eleganplot/
├── src/eleganplot/
│ ├── __init__.py # Основные экспорты
│ ├── pyplot.py # Обёртки matplotlib
│ ├── theme.py # Система тем
│ └── utils/
│ ├── custom_methods.py # Готовые кастомные методы
│ ├── decorators.py # Система декораторов
│ ├── glow.py # Эффекты свечения
│ └── gradient.py # Градиентные заливки
├── examples/ # Примеры использования
└── docs/ # Документация
📚 Документация
🎨 Галерея визуализаций
Коллекция примеров с изображениями и кодом
Полные руководства
- Руководство по эффектам свечения - эффект glow для линий
- Руководство по градиентным фонам - создание графиков с градиентным фоном
- Система кастомных методов - расширение функциональности
- Руководство по комбинированию методов - комбинация различных эффектов
Быстрые справки
- Быстрый старт: gradient_subplots - краткая шпаргалка
- Итоги: gradient_subplots - сводка возможностей
📖 Оглавление документации
Полный указатель всех материалов
🤝 Вклад в проект
Мы приветствуем вклад в развитие EleganPlot!
- Форкните репозиторий
- Создайте ветку для новой функции (
git checkout -b feature/amazing-feature) - Зафиксируйте изменения (
git commit -m 'Add amazing feature') - Отправьте в ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
📄 Лицензия
Этот проект лицензирован под MIT License — смотрите файл LICENSE для деталей.
🔗 Зависимости
- Python >= 3.9
- matplotlib >= 3.7
- numpy (через matplotlib)
📈 Версии
v0.1.0 (текущая)
- Базовая система тем
- Эффекты свечения для линий
- Градиентные заливки
- Градиентные фоны (gradient_subplots)
- Система кастомных методов
- Готовые компоненты (доверительные интервалы, мультилинии)
👨💻 Автор
Alex Frauch
EleganPlot — делаем визуализацию данных элегантной! ✨
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eleganplot-0.1.1.tar.gz.
File metadata
- Download URL: eleganplot-0.1.1.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a260c8338e2c6544dd72126848bad792e9689736ad674862a3e26aba44c66c2
|
|
| MD5 |
ce0754d322754158ec61c4cdea9f2c7b
|
|
| BLAKE2b-256 |
fda134030c206084b7f7bf6a2a11aff5fe138fe53a59094450af46ac811b2cf2
|
File details
Details for the file eleganplot-0.1.1-py3-none-any.whl.
File metadata
- Download URL: eleganplot-0.1.1-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7971545a5842e94aa818dc0bee16af645b26a597e44d8ad42a850cde342feb3
|
|
| MD5 |
adade3736c0649182027b397ca4a4a97
|
|
| BLAKE2b-256 |
548fc456504a7acd9573d44c96f5b4847ea2ea6eddbd9bde079ce360dbe3b1e7
|