A subject-matter-expert data visualization consultant powered by LLMs, grounded in Tufte, Munzner, and Cairo

Author
Affiliation

University of Wisconsin–Madison

Published

July 25, 2026

Abstract

VizAdvisor is a full-stack web application that helps analysts, researchers, and communicators describe a dataset and a visualization goal, then receive structured, LLM-powered recommendations for chart type, visual encodings, accessibility, pitfalls, and ready-to-run code scaffolds. Optional pre- and post-visualization statistical analysis runs through R or Python on a self-hostable Express proxy. This Posit Connect Cloud site documents the product end-to-end — architecture, prompt design, chart taxonomy, analysis service, API routes, and contribution guidelines — using the complete content of the open-source repository.

Keywords

data visualization, large language models, chart recommendation, Quarto, React, R, Python, Posit Connect Cloud, accessibility

1 Overview

VizAdvisor is a frontend-first SME (subject matter expert) visualization advisor. Users upload or paste CSV/JSON data, select a communication goal, set audience and tooling constraints, and receive a validated JSON recommendation that drives a rich UI: primary chart, alternatives, design decisions, pitfall warnings, follow-up questions, and a syntax-highlighted code scaffold.

The application is intentionally modular. Prompt construction, LLM communication, schema inference, and UI rendering are decoupled so providers, chart libraries, and presentation can change independently (Cairo, 2012; Munzner, 2014; Tufte, 2001).

1.1 Product focus

ID Capability What success looks like
F1 Schema-aware recommendations Chart advice cites concrete columns, types, and cardinalities — not generic tips
F2 Structured LLM output Valid JSON schema powers UI cards; free-form prose is rejected
F3 Optional statistical analysis Pre/post-viz descriptive, regression, power, mediation, factorial via R or Python
F4 Privacy-aware defaults Recommendations send schema + ≤5 sample rows; analysis is opt-in and self-hostable

2 Core data flow

Code
flowchart LR
  A[Upload / paste data] --> B[Schema inference]
  B --> C{Optional pre-viz analysis}
  C --> D[Goal + parameters]
  D --> E[PromptBuilder]
  E --> F["POST /api/recommend"]
  F --> G[Recommendation UI]
  G --> H{Optional post-viz analysis}

flowchart LR
  A[Upload / paste data] --> B[Schema inference]
  B --> C{Optional pre-viz analysis}
  C --> D[Goal + parameters]
  D --> E[PromptBuilder]
  E --> F["POST /api/recommend"]
  F --> G[Recommendation UI]
  G --> H{Optional post-viz analysis}

  1. Upload or paste a CSV/JSON dataset (PapaParse + column-type inference).
  2. Optional pre-viz analysis — descriptive stats, regression, power, mediation, or factorial ANOVA.
  3. Select a goal — compare, trend, distribution, correlation, part-of-whole, geospatial, network, ranking.
  4. Set parameters — audience, chart library, interactivity, accessibility, notes.
  5. LLM recommend via Express proxy → Anthropic / OpenAI.
  6. Render recommendation cards, alternatives, design decisions, pitfalls, code, export.
  7. Optional post-viz analysis on the same engines.

3 Feature highlights

3.0.1 CSV / JSON upload

Drag-and-drop or paste. Automatic schema inference for quantitative, ordinal, nominal, temporal, and geographic columns.

3.0.2 Goal selection

Eight communication goals mapped to a scored chart-candidate taxonomy in chartTypeMapper.js.

3.0.3 LLM recommendations

Structured output: chart type, rationale, encodings, design decisions, code scaffold, confidence.

3.0.4 Pre- / post-viz analysis

R or Python scripts for descriptive, regression, power, mediation, and factorial analyses.

3.0.5 Accessibility

Colorblind-safe palettes, WCAG guidance, and ARIA-oriented recommendations in the system prompt.

3.0.6 Export & history

Copy or download Markdown/JSON; session history persisted in localStorage.

4 Tech stack

Layer Choice
Framework React 18 + Vite 6
Styling Tailwind CSS
State React Context + useReducer
Routing React Router v6
LLM Anthropic Claude / OpenAI (via proxy)
Data parsing PapaParse
Code highlighting Prism.js
Analysis R (jsonlite, dplyr, …) or Python (pandas, statsmodels, …)
Testing Vitest + Testing Library
This site Quarto website → Posit Connect Cloud

5 Documentation map

Page Contents
Get Started Prerequisites, env vars, run.sh, production build
Features Full feature inventory from the product README
Architecture Layers, data flow, security, extensibility
Prompt Design System/user prompts, JSON schema, failure modes
Data Viz Reference Chart taxonomy, encodings, pitfalls encyclopedia
Analysis Service R/Python engines, endpoint contract, packages
Chart Taxonomy Goal → candidate scores from source
API & Routes Client routes + /api/recommend + /api/analyze
Repository Map Mermaid map of the monorepo
About Theory foundation, privacy, technology

6 Application routes

Path Description
/ Landing page
/advisor Main tool — upload, goal, recommend, analyze
/about Product overview and data handling

API: POST /api/recommend (LLM proxy), POST /api/analyze (R/Python).

7 Quick start

git clone https://github.com/Exios66/vizadvisor.git
cd vizadvisor
npm install
cp .env.example .env
cp server/.env.example server/.env
# Set ANTHROPIC_API_KEY (or OpenAI) in server/.env
./run.sh
# → http://localhost:5173/advisor

See Get Started for full environment variable tables and analysis package setup.

8 License & authorship

Personal development project by Jack J. Burleson (GitHub: Exios66 / jjburleson). Source: github.com/Exios66/vizadvisor.

9 References

Cairo, A. (2012). The functional art: An introduction to information graphics and visualization. New Riders.
Few, S. (2012). Show me the numbers: Designing tables and graphs to enlighten (2nd ed.). Analytics Press.
GitHub. (2024). GitHub. https://github.com.
Munzner, T. (2014). Visualization analysis and design. CRC Press.
Posit PBC. (2024a). Posit connect cloud. https://connect.posit.cloud.
Posit PBC. (2024b). Quarto: An open-source scientific and technical publishing system. https://quarto.org.
Tufte, E. R. (2001). The visual display of quantitative information (2nd ed.). Graphics Press.
Ware, C. (2012). Information visualization: Perception for design (3rd ed.). Morgan Kaufmann.
Wilke, C. O. (2019). Fundamentals of data visualization. O’Reilly Media.