Simple interactive plotting toolkit based on pyqtgraph.
The window contains two independent plots:
Functionplot (main graph and points)Errorplot (for error curves or any additional metric)
Each plot has independent pan/zoom controls.
- Python 3.10+
numpypyqtgraph- Qt backend (
PyQt5,PyQt6,PySide2, orPySide6)
Install dependencies:
pip install numpy pyqtgraph PyQt6Create and run a canvas:
from graphics_analyser import core
canvas = core.Canvas()
canvas.add_func("np.sin(x)", "blue")
canvas.exec()-
Canvas.add_func(expr, color=None, fr=None)- Adds a function curve.
expr: expression string evaluated withxandnp.fr: render from x-value (render_from).
-
Canvas.update_func(func, new_func)- Updates a previously added function expression.
-
Canvas.add_point(x, y, color='w', size=0.05)- Adds a point to the main plot.
- Point size is in plot coordinates (
pxMode=False), so it scales with zoom.
-
Canvas.update_point(point, x, y)- Moves an existing point.
-
Canvas.add_error_plot(color='red')- Creates a line on the error plot.
-
Canvas.update_error_plot(line, x, y)- Updates line data on the error plot.
-
Canvas.exec()- Starts the Qt event loop.
- UI updates should be done in the Qt main thread (for example via
QTimer), not from Python background threads. - Expressions are evaluated through
eval; use trusted inputs only.
Простой интерактивный инструмент для графиков на базе pyqtgraph.
Окно содержит два независимых графика:
Function(основной график и точки)Error(для ошибок или любой дополнительной метрики)
Масштабирование и перемещение у графиков независимые.
- Python 3.10+
numpypyqtgraph- Qt-бэкенд (
PyQt5,PyQt6,PySide2илиPySide6)
Установка:
pip install numpy pyqtgraph PyQt6from graphics_analyser import core
canvas = core.Canvas()
canvas.add_func("np.sin(x)", "blue")
canvas.exec()-
Canvas.add_func(expr, color=None, fr=None)- Добавляет график функции.
expr: строка выражения, где доступныxиnp.fr: рисовать начиная с заданногоx(render_from).
-
Canvas.update_func(func, new_func)- Обновляет выражение добавленной функции.
-
Canvas.add_point(x, y, color='w', size=0.05)- Добавляет точку на основной график.
- Размер задается в координатах графика (
pxMode=False), поэтому меняется при масштабировании.
-
Canvas.update_point(point, x, y)- Перемещает существующую точку.
-
Canvas.add_error_plot(color='red')- Создает линию на графике
Error.
- Создает линию на графике
-
Canvas.update_error_plot(line, x, y)- Обновляет данные линии на графике
Error.
- Обновляет данные линии на графике
-
Canvas.exec()- Запускает Qt event loop.
- Обновлять UI нужно из главного Qt-потока (например, через
QTimer), а не из фоновых Python-потоков. - Выражения считаются через
eval; используйте только доверенные входные данные.