finds.dev← search

// the find

ghtmtt/DataPlotly

★ 207 · Python · GPL-2.0 · updated May 2026

D3 like plots creation with plotly in QGIS

DataPlotly is a QGIS plugin that wraps Plotly to produce interactive charts inside the QGIS desktop environment. It's for GIS analysts who want to visualize attribute data alongside their maps without leaving QGIS — scatter, box, violin, polar, ternary, contour, and more. The killer feature is bidirectional selection: click a point in the plot and the corresponding feature highlights on the map, and vice versa.

The map-canvas linking is the real value here — selection sync between plot and map canvas is something most GIS users have to cobble together manually or export to do elsewhere. The architecture is clean: each plot type lives in its own class under `plot_types/`, making it straightforward to add new types without touching unrelated code. It ships two bundled Plotly versions (1.52.2 and 3.0.1), which means it works offline and isn't broken by upstream CDN changes. CI uses Docker-based QGIS test runners and the test suite covers the plot factory, settings serialization, and processing algorithms — not just smoke tests.

Plotly 3.0.1 shipped in early 2025 and is bundled, but plotly-1.52.2 is still sitting in the repo from circa 2020 — unclear which one actually runs and why the old one is kept around. The processing algorithms require pandas as a separate install, which on Windows QGIS is a friction point that will trip up non-developer users. Test coverage is thin for the GUI layer — `test_data_plotly_dialog.py` exists but the dock and layout item code has minimal coverage, so regressions in the UI wiring are likely to slip through. The plugin has no way to save plot configurations as project-level assets that round-trip cleanly with QGIS project files; you can export JSON, but it's a separate artifact the user has to manage.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →