Skip to content

DevTools · Sẵn sàng cho AI · Mã nguồn mở

Biểu đồ khiến bạn thích cả việc debug.

Engine biểu đồ độc lập framework: DevTools tích hợp sẵn, ChartContext cho AI đọc trên mọi biểu đồ, và một API TypeScript duy nhất cho SVG, Canvas lẫn WebGPU - dùng với React, Vue, Svelte, Angular hay web component thuần.

SVG · canvas · WebGPUgetContext() on every charttree-shakeable
huy hiệu michi-vz

Kiểm tra mọi thứ

Một bảng DevTools thực thụ: trạng thái trực tiếp, bố cục, kết xuất và kiểm tra vùng chạm, so sánh giữa các lần render, đo hiệu năng và kiểm toán khả năng truy cập.

Biểu đồ mà máy đọc được

Mỗi biểu đồ phát ra một ChartContext có cấu trúc - bản tóm tắt bằng ngôn ngữ tự nhiên mà một tác nhân AI có thể đọc và điều khiển qua MCP.

Mặc định dễ tiếp cận

Chính ngữ cảnh đó là một phương án thay thế bằng văn bản thực sự cho trình đọc màn hình. Tích hợp sẵn, không phải chắp vá.

Chạy cục bộ, thuộc về bạn

Dự báo, phát hiện bất thường và thuyết minh chạy ngay trong trình duyệt. Không máy chủ, không tải lên. Giấy phép MIT.

Same engine, secretly a cat

Every block below is a real michi-vz chart (a line, a scatter, a radar, an area), fed data until it turned into Michi, our cat in Geneva. The serious reasons start right below.

Meo meo, in outlineEars up, whiskers out, traced by one line series.
Purr, dot by dotEvery point is real chart data. The eyes and nose are gold.
Mrrp, spoke by spokeTwelve axes, one polygon, two very pointed ears.
Zzz, curled upAn area chart, loafing.

Why michi-vz

Seventeen chart types, from stacked bars to gap charts to the fountain, drawn by one engine. Here are the six ideas michi-vz cares about most, each one a live chart, not a screenshot.

The sentence beside this chart was written by the chart itself. Every michi-vz chart emits a structured ChartContext that an AI agent can query, a screen reader can speak, and a test can assert on. Pixels for people, structure for everything else.

How machines read these charts →

Trải nghiệm lập trình viên là cốt lõi

Viết ít hơn.Hiểu nhiều hơn.

Dựng biểu đồ trong vài phút, kiểm tra chúng trong vài giây, và mở rộng từ nguyên mẫu đến sản xuất trên cùng một API. Chọn biểu đồ theo câu hỏi bạn đang đặt ra - mỗi thẻ là một thành phần trực tiếp trên dữ liệu thật.

Trends over time across one or many series. The dashed run is a gap in the data (detectGaps).

<michi-vz-line-chart> · SVG · canvas · WebGPUView 

A forecast fan: history, a dashed forecast median, and nested confidence bands that widen with the horizon.

<michi-vz-fan-chart> · SVG · canvas · WebGPUView 

Part to whole over time: how each component's share of a stacked total shifts.

<michi-vz-area-chart> · SVG · canvas · WebGPUView 

The relationship between two numeric variables; bubble size encodes a third.

<michi-vz-scatter-chart> · SVG · canvas · WebGPUView 

Min to max bands per series: forecasts, confidence intervals, or observed ranges.

<michi-vz-range-chart> · SVG · canvas · WebGPUView 

Stacked columns per period, linked by ribbons that trace each category over time.

<michi-vz-ribbon-chart> · SVG · canvas · WebGPUView 

Compare several entities across a shared set of axes at a glance.

<michi-vz-radar-chart> · SVG · canvas · WebGPUView 

Stacked vertical bars per category, with an explicit missing-data guard.

<michi-vz-vertical-stack-bar-chart> · SVG · canvas · WebGPUView 

Two overlaid horizontal sub-bars per label: a based vs compared value.

<michi-vz-comparable-horizontal-bar-chart> · SVG · canvas · WebGPUView 

Two full-bandwidth overlapping columns per category, with a change arrow above each pair - the vertical sibling of Comparable Bar.

<michi-vz-comparable-vertical-bar-chart> · SVG · canvas · WebGPUView 

Diverging bars from a centre line: population pyramids and tornado charts.

<michi-vz-dual-horizontal-bar-chart> · SVG · canvas · WebGPUView 

Cumulative horizontal segments per row with end-cap circles at each step.

<michi-vz-bar-bell-chart> · SVG · canvas · WebGPUView 

Two values per label joined by a gap bar that emphasises the difference.

<michi-vz-gap-chart> · SVG · canvas · WebGPUView 

Hierarchical tiles sized by value; each splits into two parts (e.g. realized vs untapped). Falls back to a stack on narrow screens.

<michi-vz-treemap-chart> · SVG · canvas · WebGPUView 

Slices sized by share of a whole; set innerRadiusRatio for a donut. Per-slice % labels and an optional legend.

<michi-vz-pie-chart> · SVG · canvas · WebGPUView 

Circles sized by value, pulled into a cluster by gravity; each can split into a realized core inside a lighter untapped ring.

<michi-vz-bubble-chart> · SVG · canvas · WebGPUView 

Flows between nodes laid out in columns; each band's thickness is the flow value. Built on d3-sankey.

<michi-vz-sankey-chart> · SVG · canvas · WebGPUView 

A Jet d'Eau: apex height is the value, the blooming plume is the uncertainty. Categorical x = snapshot/comparison, temporal x = trend.

<michi-vz-fountain-chart> · SVG · canvas · WebGPUView 

A world/region choropleth: your own GeoJSON, shaded by a threshold colour scale or an explicit category map. 13 d3-geo/d3-geo-projection projections.

<michi-vz-choropleth-map-chart> · SVG · canvas · WebGPUView 

A force-de-overlapped bubble map: you supply lng/lat per item, a one-shot simulation pulls overlapping circles apart. An optional muted backdrop landmass is available; dot-only by default.

<michi-vz-symbol-map-chart> · SVG · canvas · WebGPUView 

A radial cluster()/dendrogram: leaves sit equidistant from the centre, with circles sized at both the group and leaf level. Labels adapt (abbreviate, rotate, or hide) as leaf density grows.

<michi-vz-radial-tree-chart> · SVG · canvas · WebGPUView