Instant plotter based on pyqtgraph
via socket communication.
- Install CLI commands.
pipx install socket-plotter[pyside]
- Install in python environments where you want to use this library
- activate your environment
pip install socket-plotter
from socket_plotter import plot_lines, plot_image, plot_image_and_lines
import numpy as np
# for line plot
xdata = np.arange(100)
ydata = np.random.randn(100)
plot_lines(xdata, ydata)
# for image plot
img = np.random.randn(100, 100)
plot_image(img)
# for both, the image and each row of the image are displayed.
img = np.random.randn(100, 100)
plot_image_and_lines(img)
The above three functions check if a plotter process exists.
If needed, a new plotter process will be launched before plotting.
You can specify your python executable to launch plotter GUIs via an environment variable SOCKETPLOTTER_PYTHON_EXECUTABLE
.
You can launch them as executables.
Note that in this case SOCKETPLOTTER_PYTHON_EXECUTABLE
will be ignore.
The python interpreter in the installed environment will be used.
# launch it in background
$ socket_image_plotter &
$ socket_line_plotter &
The default ports are 8765
for lineplot and 8766
for imageplot.
The default address is 127.0.0.1
.
Other ports and address can be assigned as the following:
plot_lines(xdata, ydata, addr='<address to plotter>', port=7777)
- refine docstrings
- add entrypoints via CLI
- headers should be json-formatted.
- implement json-based data transfer
- executable switch via
SOCKETPLOTTER_PYTHON_EXECUTABLE
- removed PySide2 from
install_requires
to avoid automatic installation by package managers for compatibility for pip and anaconda environments
- released
- QThreadの適切な終了方法がよくわからないので終了時にエラーメッセージが出る
- socketのやりとりがキモいので修正したい