Every chart type produced by qsv viz, from the sample datasets in
examples/viz/. Generated with the viz feature; each chart is fully interactive.
smart dashboard (--smarter, geospatial)One `qsv viz smart seismic_events.csv --smarter --theme plotly_dark --grid-cols 3 --geojson japan_prefectures.geojson --feature-id-key properties.id` command, 11 auto-chosen panels — nearly every panel type at once on a synthetic catalog of Japanese earthquakes. Things the raw table hides but the dashboard makes obvious: depth_km is bimodal (two populations — shallow interplate quakes ~20 km and the deep Wadati-Benioff slab ~450 km — so --smarter draws a histogram, not a box that would average the peaks away); the points trace Japan's subduction arcs on the map; and a prefecture choropleth bins each quake into the GeoJSON region that contains it (point-in-polygon, no geocoding). Most of this catalog is offshore Pacific seismicity, so under the default 10 km snap cap the far-offshore quakes are dropped (287 of 417 here — the panel title reports it) and the on-land/near-coast prefectures are colored; raise --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. Coordinate columns are shown on the map only, not re-charted as distributions. Rendered with the built-in plotly_dark theme.smart dashboard (geographic outliers)`qsv viz smart delivery_stops.csv` — delivery stops clustered in metro Denver with four bad-geocode strays. Points far from the cluster centroid (beyond the Tukey far-out fence of their distances) are flagged as geographic outliers: drawn as distinct amber markers, drawn outside the purple (filled) spatial-extent box, and excluded from the auto-zoom — so the default view stays tight on the core cluster. A second, dashed-magenta no-fill box marks the full extent (core + outliers); use the Core extent / Full extent buttons at the top-left of the map to jump between the tight core view and the full spread (where the strays and the magenta box become visible). In the full qsv 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.smart dashboardAuto-profiled overview: correlation heatmap + box plots + frequency bars, led by a drill-down sunburst. `viz smart` now SKIPS an auto hierarchy when the candidate dimensions are statistically independent (nesting them would just replicate each level's marginal); sales_sample's region/payment_method/product_category are independent, so `--hierarchy-style sunburst` is passed to deliberately showcase the interactive sunburst.smart dashboard (--smarter)Same auto-profiler with `--smarter`, which runs `qsv moarstats --advanced` itself to enrich the stats cache in one step: the bimodal monthly_spend column renders as a histogram (a box plot would hide its two peaks), and the skewed account_age_days box is annotated with its skew direction and outlier share.barRevenue by region (aggregated sum).lineClosing price over time.scatterUnits sold vs revenue.scatter (bubble)Units vs revenue; marker size = shipping cost, color = profit margin %.scatter3dUnits vs revenue vs shipping cost in 3D; marker color = profit margin %.histogramDistribution of unit price.boxSpread of revenue (Tukey whiskers; points beyond the fences shown as outliers).box (grouped)Revenue spread per region — real Tukey whiskers + every (jittered) point overlaid (--box-points all).pie (donut)Revenue share by product category.heatmap (correlation)Pearson correlation matrix over numeric columns.scatter (correlated pair)The most strongly correlated numeric pair (discount_pct vs profit_margin_pct, r=-0.99). viz smart auto-adds this as a drill-down beside the correlation heatmap.contour2D density of units sold vs revenue (binned into a 20x20 grid). viz smart uses this instead of the pair scatter for large datasets, where a scatter would overplot.heatmap (pivot)Region x category grid of revenue.candlestickOHLC price action.ohlcOpen-high-low-close bars.sankeyWeb session funnel (duplicate edges aggregated).radarMulti-axis brand comparison (per-axis mean per series).treemapPart-to-whole spend by plan then region, sized by summed monthly_spend. Rounded tiles + white separators come from the treemap-specific marker; non-numeric/negative measure cells are rejected so proportions can't silently misstate.sunburstThree-level hierarchy (region -> product_category -> payment_method) as concentric rings, sized by row count; inner rings are parents, outer rings their children. Opens at two rings (maxdepth) so labels stay legible instead of crowding a ~100-sector outer ring; click a sector to drill in and the deeper ring's labels grow back. Hover always shows value + percent.mapEarthquake points on token-free OpenStreetMap tiles; marker color = magnitude, size = depth.map (density)DensityMapbox heatmap of the same points on a light Carto basemap.geoSame earthquakes on an offline natural-earth projection (no tiles, no token); marker color = magnitude. viz smart auto-uses this projection for global-extent coordinates.choroplethFilled-region map coloring countries by GDP, matched by ISO-3 code on a token-free projection basemap. Use --location-mode usa-states / country-names / geojson-id for other region keys, --map for a MapLibre tile basemap, or --geocode to derive codes from lat/lon or place names.choropleth (US states)Same chart, --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.choropleth (MapLibre + GeoJSON)--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).smart dashboard (time-series)Auto dashboard for stock_prices: a time-series trend panel (the first numeric column over the date) leads, alongside box-plot summaries of the OHLC columns.smart dashboard (per-US-state choropleth)`qsv viz smart us_cities.csv` — `viz smart` reverse-geocodes each point; because every city resolves to a US state, it adds a per-US-state choropleth (cities-per-state, albers-usa) beside the point map, alongside the usual box plots, frequency bars and the strongest-pair scatter. (The point map's spatial extent caption counts the data's bounding-box corners, which spill into neighboring countries and ocean — the choropleth instead resolves each city to its own state.) No flags, no LLM — the state fill is derived purely from the lat/lon columns.smart dashboard (--dictionary infer, treemap)Auto dashboard for customer_spend with a describegpt-inferred Data Dictionary (--dictionary infer) guiding panel selection & field labels. Two categorical dimensions (plan, region) form a shallow part-to-whole hierarchy, auto-rendered as a TREEMAP (area = size). Requires a local LLM; the committed HTML is reused on regen.smart dashboard (--dictionary infer, sunburst)Auto dashboard for sales_sample with a describegpt-inferred Data Dictionary. Its three categorical dimensions are statistically independent, so the auto-profiler skips the hierarchy by default; `--hierarchy-style sunburst` forces a SUNBURST here (concentric rings emphasize parent-child structure) to showcase the chart. Requires a local LLM; the committed HTML is reused on regen.smart dashboard (--dictionary infer, world choropleth)`qsv viz smart world_cities.csv --dictionary infer` — 1,179 cities with population over 500,000 across six inhabited continents (GeoNames-derived): `viz smart` reverse-geocodes every point and adds a per-country choropleth (cities-per-country, ISO-3) framed to the filled-country geometries via Plotly fitbounds — 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.