Данное приложение "Визуальный редактор диаграмм" разработано на Python с использованием PyQt6 для интерфейса, SQLAlchemy для работы с базой данных PostgreSQL и Matplotlib для отрисовки диаграмм. Приложение позволяет создавать, редактировать, сохранять и загружать диаграммы (столбчатые, линейные, круговые) и экспортировать/импортировать их в формате CSV.
- Создание диаграмм с различными интерфейсами создания и поддержкой создания сразу нескольких графиков в рамках одной линейных диаграммы:
- Столбчатые
- Линейные
- Круговые
- Редактирование диаграмм:
- Динамическое изменение названия
- Редактирование данных через таблицу
- Контекстное меню для удаления строк (ПКМ)
- Сохранение и загрузка:
- Сохранение диаграмм в базе данных PostgreSQL
- Загрузка ранее сохраненных диаграмм
- Удаление диаграмм
- Экспорт и импорт:
- Экспорт диаграмм в CSV файлы
- Импорт диаграмм из CSV файлов
- Визуализация:
- Просмотр диаграммы в отдельном окне
- Настройка цветовой схемы, шрифта и размера текста
- Для столбчатых диаграмм: перетаскивание столбцов (Drag & Drop) для изменения порядка
- Дополнительные функции:
- Сохранение диаграммы в PNG
- Валидация данных (уникальность имен для круговых и столбчатых диаграмм, уникальность имен диаграмм в рамках одного типа)
- Мультиоконность (возможность создавать или редактировать сразу несколько диаграмм)
visual-chart-editor/
│── venv/ # Виртуальное окружение
│── main.py # Точка входа
│── database.py # Подключение к БД
│── models.py # Модели данных
│── .env # Настройки подключения к БД
│── requirements.txt # Зависимости
│── README.md # Документация
│
├── ui/ # Графический интерфейс
│ ├── main_window.py # Главное окно
│ ├── chart_dialog.py # Диалог создания/редактирования диаграммы
│ └── plot_window.py # Окно просмотра диаграммы
│
└── controllers/ # Логика приложения
└── diagram_controller.py # Управление диаграммами (CRUD, импорт/экспорт)
- Установленный Python 3.10 или выше
- PostgreSQL сервер (локальный или удаленный)
- Созданная база данных и пользователь с правами на управление схемой
- Клонируйте репозиторий:
git clone https://github.com/stanislavsibirtsev/visual-chart-editor.git
cd visual-chart-editor- Создайте и активируйте виртуальное окружение:
python -m venv venv
source venv/bin/activate # Linux/MacOS
venv\Scripts\activate # Windows- Установите зависимости:
pip install -r requirements.txt- Настройте базу данных:
- Создайте файл
.envв корне проекта с содержимым:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=db_diagramms
DB_USER=user_diagrams
DB_PASSWORD=ваш_пароль
- Замените значения на актуальные для вашей базы данных.
- Инициализируйте базу данных:
- Запустите приложение. При первом запуске автоматически создадутся необходимые таблицы:
python main.py- Создать диаграмму: Открывает диалог для создания новой диаграммы.
- Открыть: Открывает выбранную диаграмму для редактирования (требуется предварительный выбор в дереве).
- Удалить: Удаляет выбранную диаграмму.
- Экспорт в CSV: Экспортирует выбранную диаграмму в CSV файл (активна при выборе диаграммы).
- Импорт из CSV: Импортирует диаграмму из CSV файла.
- Имя диаграммы: Введите уникальное имя для диаграммы (в рамках ее типа).
- Тип диаграммы: Выберите тип (при создании).
- Таблица данных:
- Для столбчатых и круговых: два столбца (Наименование, Значение).
- Для линейных: три столбца (Серия, X, Y).
- Контекстное меню: Правый клик по строке таблицы позволяет удалить строку.
- Автоматическое добавление строк: При заполнении последней строки добавляется новая пустая.
- Цветовая схема: Выберите из нескольких предустановленных палитр.
- Шрифт и размер: Настройте отображение текста на диаграмме.
- Сохранение в PNG: Кнопка "Сохранить изображение".
- Для столбчатых диаграмм:
- Перетаскивайте столбцы для изменения порядка.
- Кнопка "Сохранить порядок" применяет изменения в таблице данных.
- Экспорт: Сохраняет данные диаграммы в CSV файл с метаданными (тип и имя).
- Импорт: Загружает диаграмму из CSV файла. После загрузки можно изменить имя.
- PyQt6
- SQLAlchemy
- psycopg2-binary
- matplotlib
- pydantic==2.11.0
- python-dotenv
- database.py: Инициализация движка и сессии SQLAlchemy.
- models.py: Модели SQLAlchemy для диаграмм (BarChart, LineChart, PieChart).
- controllers/diagram_controller.py: Бизнес-логика (CRUD, импорт/экспорт).
- ui/: Графический интерфейс на PyQt6.
- Добавление новых типов диаграмм: расширьте
_MODEL_MAPвdiagram_controller.pyи добавьте новую модель. - Изменение интерфейса: редактируйте файлы в папке
ui.
Проект распространяется под лицензией MIT.