Skip to main content

Plugin providing support for 1d plotting in napari.

Project description

napari-plot

License PyPI Python Version tests codecov

Plugin providing support for 1d plotting in napari.

This plugin is in very early stages of development and many things are still in a state of disarray. New features and bug fixes will be coming over the coming months.

Note

napari-plot provides several custom icons and stylesheets to take advantage of the Qt backend. Since it would be a bit busy to add multiple layer lists, I opted to include a toolbar that quickly pulls the layer list whenever requested. Simple use the toolbar to access several commonly accessed elements.

Usage

You can use napari-plot alongside napari where it is embedded as a dock widget. If using this option, controls are relegated to toolbar where you can adjust layer properties like you would do in napari.

embedded

Or as a standalone app where only one-dimensional plotting is enabled. In this mode, controls take central stage and reflect napari's own behaviour where layer controls are embedded in the main application.

live-view

Roadmap:

This is only provisional list of features that I would like to see implemented. It barely scratches the surface of what plotting tool should cover so as soon as the basics are covered, focus will be put towards adding more exotic features. If there are features that you certainly wish to be included, please modify the list below or create a new issue

  • Support for new layer types. Layers are based on napari's Layer, albeit in a two-dimensional setting. Supported and planned layers:
    • Line Layer - simple line plot.
    • Scatter Layer - scatter plot (similar to napari's Points layer).
    • Centroids/Segments Layer - horizontal or vertical line segments.
    • InfLine Layer - infinite horizontal or vertical lines that span over very broad range. Useful for defining regions of interest.
    • Region Layer - infinite horizontal or vertical rectangular boxes that span over very broad range. Useful for defining regions of interest.
    • Shapes Layer - napari's own Shapes layer
    • Points Layer - napari's own Points layer
    • Multi-line Layer - more efficient implementation of Line layer when multiple lines are necessary.
    • Bar - horizontal and vertical barchart (TODO)
  • Proper interactivity of each layer type (e.g. moving Region or InfLine, adding points, etc...)
  • Intuitive interactivity. napari-plot will provide excellent level of interactivity with the plotted data. We plan to support several types of Tools that permit efficient interrogation of the data. We currently provide several zoom and select tools and hope to add few extras in the future.
    • Box-zoom - standard zooming rectangle. Simply left-mouse + drag/release in the canvas on region of interest
    • Horizontal span - zoom-in only in the y-axis by Ctrl + left-mouse + drag/release in the canvas.
    • Vertical span - span-in only in the x-axis by Shift + left-mouse + drag/release in the canvas.
    • Rectangle select - rectangle tool allowing sub-selection of data in the canvas. Similar to the Box-zoom but without the zooming part.
    • Polygon select - polygon tool allowing sub-selection of data in the canvas.
    • Lasso select - lasso tool allowing sub-selection of data in the canvas.
  • Interactive plot legend
  • Customizable axis visuals.
    • Plot axis enabling customization of tick/label size and color
    • Support for non-linear scale
  • Add convenient plotting interface:
    • Add .plot functionality
    • Add .scatter functionality
    • Add .hbar and .vbar functionality
    • Add .imshow functionality

This napari plugin was generated with Cookiecutter using with @napari's cookiecutter-napari-plugin template.

Installation

You can install napari-plot directly from PyPI via:

pip install napari-plot

or from the git repo:

git clone https://github.com/lukasz-migas/napari-1d.git
cd napari-1d
pip install -e '.[all]'

Contributing

Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.

License

Distributed under the terms of the BSD-3 license, "napari-plot" is free and open source software

Issues

If you encounter any problems, please file an issue along with a detailed description.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

napari_plot-0.1.5.tar.gz (135.4 kB view details)

Uploaded Source

Built Distribution

napari_plot-0.1.5-py3-none-any.whl (179.8 kB view details)

Uploaded Python 3

File details

Details for the file napari_plot-0.1.5.tar.gz.

File metadata

  • Download URL: napari_plot-0.1.5.tar.gz
  • Upload date:
  • Size: 135.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11

File hashes

Hashes for napari_plot-0.1.5.tar.gz
Algorithm Hash digest
SHA256 c38cbbe658529e8b599568c48e4a713179c5314868c4f87cc0ab1eeaf2e29c04
MD5 3f56333f1eb9ed11cb5c2d83abad268e
BLAKE2b-256 3d8bdcf8f1e93b69c587df014c01512639410483fcbc921264e7b6b03a82d342

See more details on using hashes here.

File details

Details for the file napari_plot-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: napari_plot-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 179.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11

File hashes

Hashes for napari_plot-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f1455b706c400da94c24ef3bceea9700a9d5ce746e69fac58d30a7b840995817
MD5 3fafa099a7e50918696b289f6afde1d6
BLAKE2b-256 82b84aa7136c53ddd98631b12406ece58dc7aa9a0576db78dbd3bf321cb0169d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page