[general]
name=02viz - Geospatial Visualization Studio
qgisMinimumVersion=3.28
qgisMaximumVersion=4.99
description=Geospatial data visualization studio: multi-engine, interactive, publication-quality charts from QGIS layers and external data.
version=0.13.0
author=Yusuf Eminoglu
email=yusuf.eminoglu@deu.edu.tr

about=02viz (Zero2Visual) turns QGIS into a full data visualization studio — from zero to elegant visuals, fast. One dock, three tabs: Charts, Map diagrams and Labels. The Charts tab renders seventeen chart types (bar, line, area, scatter, bubble, histogram, pie, box, heatmap, treemap, sunburst, mean ± σ band, mean ± σ bars, density KDE, violin, radar and Pareto) through three vendored offline engines (Apache ECharts, Plotly.js and Vega-Lite), plus an optional matplotlib/seaborn engine for publication-grade static figures you can add to the QGIS Python yourself. Animate any bar, line, area, scatter, bubble or pie chart over a time or sequence field — a bar-chart race, Gapminder-style bubbles, composition or trends over the years — with a play axis, slider and play/pause, axes and colours held steady across frames (ECharts and Plotly). One click on Explore profiles any layer into a full interactive dashboard — KPI cards with completeness, a field-summary table (type, missing rate, distinct, range/top), auto charts, a normalised box plot putting every numeric field on one comparable axis, a correlation matrix and plain-English insights (skew, outliers, near-constant and mostly-empty fields), skipping identifier columns. The Map diagrams tab draws native QGIS pie/bar/stacked/text diagrams on every feature, with optional Min–max, Z-score or Log normalisation so fields on very different scales stay comparable instead of one big-number field swamping the rest. The Labels tab turns fields into formatted, multi-line labels — rounding, thousands separators, prefix/suffix and units, case, word-wrap, a second field on its own line, or any QGIS expression — with a live preview. A built-in offline user guide explains every part (with copy-ready expression recipes and AI-assistant prompts), and a Suggest button reads your layer's fields to recommend the most insightful chart. Charts and the map stay linked both ways (click to select, select to cross-filter). Eight colour palettes plus an embedded swatch editor for your own colours, applied identically across every engine. Built-in aggregation, group/color-by, Top-N, trend lines, reference and statistics overlays (mean, median, a target value, a ±1σ band and the inter-quartile band) and pure-Python statistics; chart vector layers, attribute tables or external CSV/XLSX files; export charts as self-contained HTML, SVG, PNG and PDF files. Custom Vega-Lite specs, dashboard tile selection and extended cross-filtering are included. Developed with feedback from educational workflows at Dokuz Eylul University, Department of City and Regional Planning.

tracker=https://github.com/YusufEminoglu/zero2viz/issues
repository=https://github.com/YusufEminoglu/zero2viz
homepage=https://github.com/YusufEminoglu/zero2viz

category=Vector
tags=planx,charts,plots,graphs,dataviz,visualization,plotly,vega,echarts,matplotlib,seaborn,statistics,dashboard,diagrams,labels,attribute table

icon=icons/icon.png

experimental=False
deprecated=False
hasProcessingProvider=no
license=GPL-3

changelog=
    0.12.0 - Reference and statistics overlays: add horizontal guide lines and shaded bands to bar, line, area, scatter and bubble charts — the mean, the median, a target value you type, a ±1σ band and the inter-quartile (Q1–Q3) band — computed in pure Python from the plotted values and drawn identically by every engine (ECharts, Plotly, Vega-Lite and matplotlib). Turn any combination on from the Charts tab; they read the same in light and dark themes and export with the chart. Hardening: the studio no longer shells out to pip — when the optional matplotlib/seaborn engine is missing it now shows the exact install command for you to run yourself instead of running it, so the plugin stays offline and side-effect free and passes the QGIS Plugin Hub security scan cleanly.
    0.11.1 - Removed the shared top-level "&02viz" QGIS menu; the studio now only adds its toggle icon to its own toolbar, so it no longer shows up as its own menu tab next to Help. The dock now also remembers the last folder used to load an external table or export a chart as HTML/PDF, across QGIS sessions.
    0.10.1 - Hub upload compatibility fix: metadata text no longer contains a raw percent sign, which QGIS Plugin Hub's INI parser treats as interpolation syntax. Plugin code and features are unchanged from 0.10.0.
    0.10.0 - Map diagrams, labels and a built-in guide, levelled up. Map diagrams can now normalise their fields — Min–max (0–1), Z-score or Log — so a pie or bar compares fields on different scales fairly instead of one big-number field swamping the rest (each field's min/max/mean/std are computed from the features and baked into the diagram expressions; nothing is written to your data). Labels are now expression-driven: round numbers, add a thousands separator, stack a second field on its own line, add a prefix/suffix or units, change case, word-wrap, or type any QGIS expression — with a live preview and a first-feature sample (numeric formatting is applied only to numeric fields, so a name on a second line is never wrapped in round()). A new Guide button opens a full, offline user guide — what every part does, the normalisation modes, copy-ready label-expression recipes and prompts for an external AI assistant. A Suggest button reads the active layer's fields and configures the most insightful chart for you. Explore is richer: a collapsible field-summary table (type, missing rate, distinct, range/top), an overall completeness KPI, a normalised box plot putting every numeric field on one 0–1 axis, and deeper insights (skew with a log-transform hint, outliers, near-constant and mostly-empty fields, more correlations). Everything stays fully offline with no new dependencies; verified end-to-end on QGIS 3.44 and 4.
    0.9.2 - Plotly and Vega-Lite no longer leave a blank embedded panel on QGIS builds that ship only the legacy QtWebKit viewer (no QtWebEngine): those engines need modern JavaScript the old viewer cannot run, so their charts stayed blank in the dock although they exported and opened fine in a browser (ECharts and matplotlib were unaffected). The dock now detects this and shows a short "open in your browser" explainer instead of a silent blank panel; the chart is still built for the Export HTML and the browser (arrow) button. Switch to ECharts for a chart that renders inside the dock, or install QtWebEngine for QGIS.
    0.9.1 - QGIS 4 (Qt6) readability: the studio panel now pins its own light colours for every control, so it reads the same under any QGIS theme. On QGIS 4 the dark application palette was bleeding into the parts the panel did not explicitly colour — drop-down lists rendered on a near-black background and field labels and check-box text faded into the white cards. Combo pop-ups, line edits, spin boxes, the field list, labels, check boxes and tool-tips are now explicitly styled (white fields, dark text, teal selection). QGIS 3.x was unaffected and is unchanged, as are the chart engines.
    0.9.0 - Animated charts (play axis): pick a field such as a year and the chart plays through its values — a bar-chart race, Gapminder-style bubbles, composition or trends over time. Works in ECharts (timeline) and Plotly (slider + play/pause) for bar, line, area, scatter, bubble and pie. Categories, series colours and axes stay fixed across frames (bubble sizes are scaled once, globally) so things animate in place, and animated bars/points still click to select features on the map. Pure-Python frame builder, fully offline, no new dependencies.
    0.8.0 - Three-tab studio under one dock: Charts, Map diagrams and Labels, sharing one layer selector. New Labels tab adds quick, elegant feature labels (clean/halo/bold presets) via native QGIS labeling. Embedded colour editor: the palette swatches are now inline in the Charts tab — click to recolour, +/- to resize, no modal — plus a chart-title override. Optional advanced engine: a matplotlib/seaborn renderer for publication-grade static figures, listed in the engine picker and installed on demand (auto-detect missing libraries, one-click pip install into the QGIS Python). 'Zero2Visual' motto surfaced in the dock and About. The vendored JS engines remain zero-dependency and offline.
    0.7.0 - Map diagrams: draw native QGIS pie / bar / stacked-bar / text diagrams on every feature, on the map canvas, coloured with the studio palette (they print and export to layout like any symbology). Custom colour palettes: a swatch editor lets you define your own series colours, applied identically across all three engines. Fixed charts staying blank in the embedded dock while exporting fine (the viewer now gives the chart a definite size and re-fits once laid out; an 'open in browser' escape hatch and the active web backend are shown). Engine-first workflow: pick the renderer, then choose from the chart types it can draw. Explore now ignores identifier columns (fid, id, gid, uuid, primary keys) that carry no analytical meaning. Publication-grade visual polish across every engine: one type system, soft dashed gridlines, clean card tooltips and rounded bars.
    0.6.0 - Six advanced chart types (17 total): Mean ± σ band (line with shaded ±1 standard-deviation envelope), Mean ± σ bars (bars with std-dev whiskers), Density (Gaussian KDE, optionally one curve per group), Violin (mirrored KDE shapes with median dots), Radar/spider (multi-axis comparison with per-axis scaling) and Pareto 80/20 (descending bars + cumulative-share line on a second axis). All statistics computed in pure Python; rendered by all three engines from one spec (radar is greyed out for Vega-Lite, no polar grammar). New Colors selector with 8 curated palettes (Vivid, Colorblind safe, Viridis, Sunset, Ocean, Earth, Berry, Grayscale print) that override the theme palette identically in every engine, single charts and Explore dashboards alike.
    0.5.0 - Third engine: Vega-Lite (vendored vega + vega-lite, BSD-3) renders 9 of the 11 chart types from the same spec contract, with full chart-to-map clicks and map-to-chart cross-filter dimming; the dock greys out chart types an engine cannot draw. Heatmap label contrast fixed on sequential ramps in all engines (white labels only on dark cells).
    0.4.0 - Map-to-chart cross-filter: selecting features on the canvas instantly dims non-selected items in the chart and in every dashboard tile, without a re-render. Crash-safe selection bridge: chart clicks now reach QGIS through the page title (titleChanged) instead of object injection, fixing an access-violation crash in QGIS builds that ship the legacy QtWebKit stack; the chart-to-map link now works identically on WebKit and WebEngine.
    0.3.1 - Package directory renamed to zero2viz to satisfy the QGIS Plugin Hub PEP 8 package-name requirement (the previous digit-first name was rejected at upload). Plugin display name, features and behaviour are unchanged.
    0.3.0 - One-click Explore: profile any layer into a complete interactive dashboard (KPI cards, auto-charts per field, Pearson correlation matrix, strongest-relationship scatter with trend, plain-English insights), exportable as a single HTML. Zero-based bar/area/histogram axes, heatmap label contrast, human number formatting.
    0.2.0 - Second engine (Plotly.js) + 5 new chart types (area, bubble, heatmap, treemap, sunburst) = 11 total. Chart-to-map selection: clicking a bar, slice or point selects the features on the canvas (WebKit and WebEngine bridges). Live mode re-renders on selection change. Group/color-by series, stacked bars and areas, Top-N with Other, value sorting, least-squares trend line, 4 themes.
    0.1.0 - Chart studio MVP: 6 chart types (bar, line, scatter, histogram, pie, box) rendered by a vendored ECharts engine, aggregation, selected-only mode, external CSV/XLSX tables, embedded viewer with browser fallback, one-file HTML export.
