Every chart type produced by qsv viz, from the sample datasets in
examples/viz/. Generated with the viz feature; each chart is fully interactive.
--snap-max-dist to snap distant quakes to the nearest prefecture instead, or --no-snap to drop every offshore point. magnitude vs felt_reports is almost perfectly correlated (r=0.95); magnitude and felt_reports are right-skewed with flagged outliers; and the magnitude-over-time trend spikes during a September aftershock sequence. --bivariate adds an NMI association heatmap spanning every column type, not just the continuous-numeric ones the Pearson heatmap covers — it surfaces depth_km and felt_reports as strongly associated with occurrence_date (NMI=0.93 and 0.89), a temporal-clustering signal (the same September aftershock sequence) a Pearson matrix restricted to numeric pairs alone cannot express against a date column. Coordinate columns are shown on the map only, not re-charted as distributions. Rendered with the built-in plotly_dark theme.qsv viz smart seismic_events.csv --smarter --bivariate --theme plotly_dark \
--grid-cols 3 --geojson japan_prefectures.geojson -o smart_dashboard_smarter_geospatial.htmlqsv viz smart HTML output the spatial-extent label calls them out — Colorado, United States — 4 outliers (Wyoming, Kansas & Nebraska) — while strays within the core's own jurisdiction are folded back in silently instead. Each stop also carries delivery attributes (packages, weight_kg, distance_km, delivery_minutes, a vehicle class and a delivered_date), so beyond the map the auto-profiler fills the dashboard out with box plots, frequency bars, a correlation heatmap, the strongest-pair scatter (packages vs weight_kg) and a delivered-over-time trend — all without --smarter.qsv viz smart delivery_stops.csv -o smart_dashboard_geographic_outliers.htmlqsv viz smart sales_sample.csv --hierarchy-style sunburst --max-charts 8 \
-o smart_dashboard.htmlqsv viz smart customer_spend.csv --smarter --max-charts 8 -o smart_dashboard_smarter.htmlqsv viz bar sales_sample.csv --x region --y revenue --agg sum \
-o bar.htmlqsv viz line stock_prices.csv --x date --y close -o line.htmlqsv viz scatter sales_sample.csv --x units_sold --y revenue -o scatter.htmlqsv viz scatter sales_sample.csv --x units_sold --y revenue --size shipping_cost \
--color profit_margin_pct -o scatter_bubble.htmlqsv viz scatter3d sales_sample.csv --x units_sold --y revenue \
--z shipping_cost --color profit_margin_pct -o scatter3d.htmlqsv viz histogram sales_sample.csv --x unit_price -o histogram.htmlqsv viz box sales_sample.csv --y revenue -o box.htmlqsv viz box sales_sample.csv --y revenue --x region --box-points all \
-o box_grouped.htmlqsv viz violin sales_sample.csv --y revenue --x region -o violin.htmlqsv viz pie sales_sample.csv --x product_category --y revenue \
--donut -o pie_donut.htmlqsv viz heatmap sales_sample.csv -o heatmap_correlation.htmlqsv viz scatter sales_sample.csv --x discount_pct --y profit_margin_pct \
-o scatter_correlated_pair.htmlqsv viz contour sales_sample.csv --x units_sold --y revenue --bins 20 \
-o contour.htmlqsv viz heatmap sales_sample.csv --x region --y product_category \
--z revenue -o heatmap_pivot.htmlqsv viz candlestick stock_prices.csv --x date --ohlc-open open \
--high high --low low --close close -o candlestick.htmlqsv viz ohlc stock_prices.csv --x date --ohlc-open open --high high \
--low low --close close -o ohlc.htmlqsv viz sankey web_flows.csv --source source --target target \
--value sessions -o sankey.htmlqsv viz radar product_ratings.csv --cols battery,camera,performance,display,value,design \
--series brand -o radar.htmlqsv viz treemap customer_spend.csv --cols plan,region --value monthly_spend \
--agg sum -o treemap.htmlqsv viz sunburst sales_sample.csv --cols region,product_category,payment_method \
-o sunburst.htmlqsv viz map quakes.csv --lat lat --lon lon --color magnitude \
--size depth_km -o map.htmlqsv viz map quakes.csv --lat lat --lon lon --density --style carto-positron \
-o map_density.htmlqsv viz geo quakes.csv --lat lat --lon lon --color magnitude \
--projection natural-earth -o geo.htmlqsv viz choropleth country_stats.csv --locations iso3 --value gdp_usd_tn \
--color-scale viridis -o choropleth.html--location-mode usa-states: state codes matched to Plotly's built-in US-state geometry on the token-free albers-usa projection (CONUS + Alaska/Hawaii insets) — no GeoJSON needed. States are colored by renewable-electricity share.qsv viz choropleth us_state_stats.csv --locations state --value renewable_electricity_pct \
--location-mode usa-states -o choropleth_us_states.html--map draws the filled regions on an interactive MapLibre tile basemap (token-free carto-positron) instead of a projection. The regions come from a custom GeoJSON (--geojson local file or URL) matched to the data by --feature-id-key — here the near-rectangular western states, colored by installed wind capacity. The view auto-centers and zooms to the GeoJSON extent (shown full-width so the computed zoom frames the regions as the CLI does — a tile map's zoom is fixed, so a narrow grid cell would crop it).qsv viz choropleth western_states.csv --locations state --value wind_capacity_gw \
--geojson western_states.geojson --feature-id-key id --map --style carto-positron \
-o choropleth_maplibre_geojson.htmlqsv viz smart stock_prices.csv --max-charts 8 -o smart_dashboard_time_series.htmlqsv viz smart us_cities.csv -o smart_dashboard_per_us_state_choropleth.htmlqsv viz smart customer_spend.csv --dictionary infer -o smart_dashboard_dictionary_infer_treemap.htmlqsv viz smart sales_sample.csv --dictionary infer --hierarchy-style sunburst \
-o smart_dashboard_dictionary_infer_sunburst.htmlfitbounds — so the regions are never clipped at the viewport edge — beside the dense natural-earth point map (crimson markers so coastal/island points read against the ocean), plus a six-continent breakdown. A describegpt-inferred Data Dictionary supplies the friendly field labels (e.g. Metro Population, Avg Annual Temp). The continent column follows the plotly.js geo scope continent vocabulary (Oceania, North America, …). Note: elevation_m is real (GeoNames), while avg_annual_temp_c is a rough synthetic proxy (latitude + elevation-lapse model), so treat it as illustrative. Requires a local LLM; the committed HTML is reused on regen.qsv viz smart world_cities.csv --dictionary infer -o smart_dashboard_dictionary_infer_world_choropleth.htmlviz smart draws the filled regions on an interactive MapLibre tile basemap (token-free carto tiles, fine street/coastline detail) instead of the coarse projection basemap it uses for country/continental choropleths. The leading point map flags bad-geocode outliers (here, 9 in Pennsylvania): a nice illustration of the hover's value — for a stray PA point, the tooltip shows the record's own Incident City: NEW YORK right above its reverse-geocoded Pennsylvania, United States, so a real Manhattan complaint saddled with corrupt coordinates is self-evident at a glance. --smarter runs moarstats --advanced to enrich the stats cache, and a committed --dictionary (nyc311_dict.schema.json — a Data Dictionary generated for this dataset, then reviewed and committed alongside it) tags the record's identifier columns (Unique Key, BBL) so they're skipped rather than charted as quantities, labels the State-Plane coordinates as coordinate dimensions, and supplies friendly names (e.g. Complaint Creation Date, Resolution Deadline), so the profiler treats a service-request log as volume-and-category data. Alongside the maps the auto-profiler fills the dashboard with frequency bars, an hour-of-day seasonality profile, a time trend, a hierarchical breakdown and a mean-by-borough panel. New here is an auto-selected, colored Sankey flow (Agency Code → Submission Channel): it traces how each city agency's complaints arrive by channel, the thickest ribbons being HPD → PHONE (1,426) and NYPD → PHONE (1,348). --bivariate adds an NMI association heatmap across the 36 charted columns plus a ranked Top Relationships panel — a horizontal multivariate lollipop where each dot's position is the pair's NMI on a value axis zoomed to the shown band (so near-ceiling associations separate instead of crushing together at 1.0), its size encodes co-occurrence support, and an amber dot flags a nonlinear pair. The top pair is a purely categorical one a Pearson-only heatmap could never surface, since neither column is numeric: Borough × Park Borough (NMI=1.0, n=10,000 of 10,000). It also flags a genuine nonlinear pair in amber — Closed Date × Due Date (NMI=0.9994): a complaint's actual close date is almost perfectly rank-associated with its deadline, yet how far the two land apart varies by complaint type, curving the relationship in a way a linear correlation alone would understate. The ranking is support-weighted: a pair only qualifies when its co-occurring row count is at least 10% of the best-supported pair's, so a technically-perfect NMI from two sparsely-populated columns can't crowd out a more broadly meaningful one — the top of the ranking instead surfaces genuinely dataset-wide pairs like Borough × Park Borough (n=10,000) and Due Date × Resolution Action Updated Date (NMI=0.9996, n=3,467). --dict-info adds a per-panel info icon and a slide-over Data Dictionary drawer sourced from the same committed schema, with an Export JSONSchema download that saves the dictionary verbatim. The run stays fully deterministic and offline: because the dictionary is committed, --bivariate never triggers a live --dictionary infer pass.qsv viz smart nyc_311.csv --smarter --bivariate --dict-info --dictionary nyc311_dict.schema.json \
--geojson nyc_neighborhoods.geojson -o smart_dashboard_smarter_committed_dictionary_nyc_311_metro_choropleth.htmlOwnerZip column, so viz smart aggregates licenses per zip and fills the matching Allegheny County zip-boundary polygons from --geojson (--feature-id-key properties.ZIP). The key column is auto-chosen by matching each geo-dimension column's values against the boundary ids — here 118 zips match, from 1 license (rural fringe) to 2,866 in zip 15237 (suburban North Hills). Because the matched regions span a metro-scale extent, the fill lands on an interactive MapLibre tile basemap (token-free carto tiles) rather than the coarse projection basemap used for country/continental choropleths. A curated --dictionary (allegheny_dogs_dict.schema.json) tags OwnerZip as geo.zip_code — the signal that turns a numeric zip code into a choropleth key instead of a frequency bar — and marks _id/DogName as identifiers so they're skipped. This dataset carries no numeric measure, so only the per-zip count map is drawn; a dataset that also tags a measure column (e.g. a sale price) additionally gets a per-zip median-of-measure choropleth beside it. Alongside the map the profiler fills the dashboard with LicenseType/Breed/Color frequency bars and, via --bivariate, an NMI association heatmap (Breed ↔ Color) plus a ranked Top Relationships panel. --dict-info adds a per-panel info icon and a slide-over Data Dictionary drawer sourced from the same curated schema. Fully deterministic — no LLM needed (the curated dictionary is reviewed and committed, exactly like an --dictionary infer pass would produce).qsv viz smart allegheny_dog_licenses.csv --smarter --bivariate \
--dict-info --dictionary allegheny_dogs_dict.schema.json --geojson allegheny_zip_boundaries.geojson \
--feature-id-key properties.ZIP -o smart_dashboard_smarter_curated_dictionary_region_code_zip_choropleth.htmlqsv viz smart visual data dictionary over real Pittsburgh 311 service requests from the Western Pennsylvania Regional Data Center (WPRDC). The dashboard bins each request's lat/lon by point-in-polygon into Pittsburgh's neighborhood polygons (--geojson pittsburgh-neighborhoods, no geocoding); a curated --dictionary (pitt311data.schema.json) tags identifier/code columns and supplies friendly field labels, and --dict-info renders that dictionary as its own in-page Data Dictionary tab (with a hover/click info icon on every panel title). --smarter enriches the stats cache (moarstats --advanced) and --bivariate adds the NMI association heatmap plus the ranked top-relationships panel, while --dataset-pid adds a clickable citation link back to the source dataset. The standalone page is a ~19 MB self-contained dashboard — too large to embed inline — so this is a screenshot: click it to open the fully interactive dashboard in a new window.qsv viz smart pitt311data.csv --smarter --dictionary pitt311data.schema.json \
--dict-info --bivariate -o pitt311data-smart-visual-datadic.html \
--geojson pittsburgh-neighborhoods --dataset-pid https://data.wprdc.org/dataset/pittsburgh-311-data