kitegraph

Data shapes for every chart

How to lay out your table for each chart type, what formats and locales the editor reads, and copyable starter templates.

Every chart in Kitegraph reads the same kind of table: one row per time period, one column per series, with a header row of series names and the period labels down the first column. That one shape drives almost every chart type. A few types read the table differently, and those conventions are shown below with example tables you can download, or simply select and copy straight into the editor grid.

You can paste from Excel, Google Sheets, or any web page, upload a file (CSV, TSV, TXT, Excel XLSX and XLS, or ODS), connect a Google Sheet, or link a live CSV URL. All of them land in the same editable grid with the same interpretation.

The basic shape

Works for line, area, stacked area, streamgraph, column, bar, stacked and grouped bars, bar race, pie and donut, treemap, dot, range, arrow, box plot, heatmap, small multiples, and the table type. Periods down the first column, one column per series:

YearUnited StatesChinaGermany
200010.251.211.95
200513.042.292.85
201015.056.093.4
201518.2111.063.36
202021.3214.693.89

Download CSVDownload Excel

Charts that show one moment (pie, treemap, dot, bar) default to the latest period and have an "as of" control to pick another. Charts that show change over time use the whole table. If your data is arranged the other way (series down the side, periods across) use the Transpose toggle above the grid.

Numbers and dates the grid understands

Values can carry currency symbols, thousands separators, percent signs, and accounting negatives like (1,500): the grid strips them. Both number conventions parse correctly, decided per column: 1,500.25 reads as English, 1.234,56 reads as European.

Dates normalize automatically, per column, to the forms the time features use. All of these work: 2020 · 2020-03 · 2020-03-15 · 3/15/2020 · 15.03.2020 · Mar 2020 · Jan-20 · Q1 2020. When the period column is a real date column, the calendar axis, the time range control, and granularity summaries all light up. A column that is not dates stays as plain categories, which is also fine.

Scatter and bubble: one row per point

Scatter reads each table row as one point and lets you map any columns to the X, Y, and bubble-size axes in the editor. The first column is the point label:

CountryGDP per capitaLife expectancyPopulation
United States76,39979.3333,000,000
Germany48,71881.284,000,000
Japan33,81584.8125,000,000
Brazil891872.8214,000,000

Download CSVDownload Excel

Choropleth map: regions as columns

The map matches series names against countries (names or ISO codes) and US states (names or abbreviations), and detects world versus US automatically:

YearUnited StatesCanadaMexico
202021.321.651.09
202123.6821.31
202225.742.141.46

Download CSVDownload Excel

Candlestick: four price columns

Name four columns Open, High, Low, Close (any order; capitalization does not matter) with dates down the first column:

DateOpenHighLowClose
2026-01148.2155.9146153.4
2026-02153.4161.2151.8158.7
2026-03158.7160.1149.5151.2

Download CSVDownload Excel

Calendar: daily dates

The calendar type needs one series at daily resolution: one row per day. Weekends and holidays can simply be missing rows; they render as empty cells:

DatePrice
2026-01-0269.4
2026-01-0370.1
2026-01-0669.8
2026-01-0771.2

Download CSVDownload Excel

Sankey: name each flow "Source → Target"

Each column is one flow, named with an arrow between the two stages. The value row carries the flow weight; with several periods, the "as of" control picks the moment:

YearCoal → ElectricityGas → ElectricityGas → IndustrySolar → Electricity
20246751690980240

Download CSVDownload Excel

Radar and multi-measure comparisons: "Entity · Measure" columns

Radar, the dot comparison, and scatter's one-dot-per-member mode read two dimensions from the column names: the entity and the measure, separated by a middle dot with spaces around it:

YearUS · GDP per capitaUS · Life expectancyChina · GDP per capitaChina · Life expectancy
202063,5307710,40977.1
202376,39979.312,61478.6

Download CSVDownload Excel

Long-format data: one row per observation

If your table has one row per observation instead of one column per series, the Custom CSV source in Browse sources accepts a typed layout: the first row labels each column's role (statistic, period, value, and optional filter columns), the second row holds your headers, and each data row is one observation. Every statistic and filter combination becomes one series:

statisticperiodvaluefilter
StatisticYearValueRegion
Revenue20231,500,000North
Revenue2023900,000South
Revenue20241,800,000North
Revenue20241,100,000South

Download CSVDownload Excel

Checking and shaping in the grid

The grid on the data step is the check-and-edit surface: toggles for the header row, the label column, and transpose; click a column header to sort the view; and per-column tools to hide a column from the chart or divide its values by a thousand, a million, or a billion (the table keeps the original numbers, so both are reversible).

Data shapes for every chart — Kitegraph docs