TheJIT Visual Lab is a small collection of browser-based data-visualization tools maintained for thejit.org:
- Sankey Diagram Generator
- Radar Chart Maker
- Bubble Chart Maker
This is a new project maintained by TheJIT’s current publisher. It is not the original JavaScript InfoVis Toolkit, and it is not maintained by that project’s original author, Nicolás García Belmonte.
The project is built around three product decisions:
- Start with a spreadsheet table instead of a tool-specific mini-language.
- Keep pasted data in the browser instead of sending it to an upload endpoint.
- Explain the visual encoding and its limits instead of treating every chart type as interchangeable decoration.
All three tools work without an account, analytics dependency, watermark, or third-party chart library. They export editable SVG and 2× PNG. Each rendered chart also includes a preflight report, a specific text description, and a keyboard-readable data table so exact values do not depend on pointer hover. Each tool page has its own four-step workflow, reading guidance, and an input-adjacent explanation of what stays local.
Paste Source, Target, Value rows copied from Excel, Google Sheets, or a text
file. Duplicate source/target pairs are aggregated and counted; users can
preserve input order, sort alphabetically, or balance a column by flow size.
Long labels are audited and can wrap, visually shorten, or be hidden. Transit
nodes with unequal incoming and outgoing totals are reported with both values
and the difference. Cyclic flows are rejected with a visible explanation.
Use the first column for 3–12 metric labels and the following columns for up to five series. Values must be non-negative and cannot exceed the declared shared maximum. Longer axis labels wrap without a visual ellipsis, exact values remain available in a companion table, and legend items can hide or restore a series. The same values can be inspected as grouped bars. A scale audit reports maximum, headroom, zero values, and density; an accessible ZIP combines SVG, 2× PNG, exact CSV, and a chart description.
Paste Label, X, Y, Size, Group rows. X and Y axis names come from the header,
while circle area is proportional to Size. A size legend makes that
encoding explicit; Group is optional. Manual X/Y limits support comparable
charts, the renderer keeps edge bubbles inside the plot, and duplicate
coordinates are disclosed rather than silently presented as separate visible
points. Invalid rows either stop the render or can be skipped with a list.
Hidden labels are counted, while very small bubbles receive a dashed locator
ring that does not change their data-encoded area.
Parsing, validation, chart layout, and export happen in the current browser tab. The plugin has:
- no dataset upload endpoint;
- no account or persistence layer;
- no third-party JavaScript request;
- no telemetry call in the visualization code.
Closing or clearing the tab removes the pasted data.
- Zip the
thejit-visual-labdirectory. - In WordPress, open Plugins → Add New → Upload Plugin.
- Install and activate TheJIT Visual Lab.
- Create the pages below and place the matching shortcode in each.
| URL | Shortcode |
|---|---|
/tools/ |
[thejit_visual_lab] |
/tools/sankey-diagram-generator/ |
[thejit_sankey] |
/tools/radar-chart-maker/ |
[thejit_radar] |
/tools/bubble-chart-maker/ |
[thejit_bubble] |
The plugin’s page template calls the active theme’s get_header() and
get_footer(). The real logo, global navigation, categories, post feed, and
footer remain theme-owned.
The plugin also contains an optional homepage introduction, tool shelf, and
editorial bridge. THEJIT_VISUAL_LAB_ENABLE_HOME_SECTIONS remains enabled in
v0.4.0 after the site owner explicitly approved the reviewed homepage proposal.
The original article container remains immediately after the new sections.
The renderers are dependency-free ES modules in assets/:
lab-core.js— parsing, SVG helpers, palettes, and exportsankey.js— acyclic flow layoutradar.js— shared-scale radial comparisonbubble.js— X/Y plot with area-proportional Sizeapp.js— workbench interaction
Run JavaScript syntax checks with:
node --check assets/app.js
node --check assets/lab-core.js
node --check assets/sankey.js
node --check assets/radar.js
node --check assets/bubble.js
node tests/parser-tests.mjs- Sankey: no cycles, manual node positioning, or large-file streaming.
- Radar: no negative values, mixed units, or more than five series.
- Bubble: maximum 80 rows; duplicate coordinates are reported but not moved; no collision-avoidance simulation or live dashboard.
- All tools: no cloud save, collaboration, or share-link feature.
These limits are stated on the public product pages so users can choose another chart form or a heavier tool when appropriate.
The new Visual Lab code is available under the MIT License. No original JIT source code is included.