Basic structure
Data is structured as a table with explicitly defined columns and rows:columns array defines your data structure, while rows contains the actual values. Each row object must have keys matching the column keys.
Automatic column mapping
Graphy automatically assigns your data columns to x-axis and y-axis, and creates series based on the detected value formats. Default mapping for most graph types (bar, column, line, area):- The first text or date column becomes the x-axis
- All numeric columns become the y-axis, with each numeric column creating a separate series
Pie and donut use the first text column for slices and the first numeric column for values. Additional columns are ignored.
Scatter requires at least 2 numeric columns: the first becomes the x-axis and the remaining become y-axis series. If a text column is present, it is used as a label for each point.
Bubble requires at least 3 numeric columns: the first is the x-axis, the second is the y-axis and the third controls the bubble size. Like scatter, the first text column is used as a label.
If your data contains only numeric columns, the first numeric column is used as the x-axis and the rest become series.
Value format detection
Graphy automatically detects the format of values in each column. The first match wins:Numbers
Numbers and numeric strings are detected as quantitative values. Thousands separators, decimals and magnitude suffixes are supported:Dates
Date-like strings are automatically parsed. Graphy recognises a wide range of formats, including ISO dates, named months and locale-specific orderings:Jan, Feb) are recognised alongside full names. Set data._metadata.parsingLocale to control whether ambiguous dates like 01/02/2024 are interpreted as MM/DD (en-US) or DD/MM (en-GB).
Weekly date ranges are also detected — values like 1 Feb – 7 Feb or 1 Feb 2024 – 7 Feb 2024 representing 7-day spans.
Percentages
Values with a% suffix are detected as percentages:
Currencies
Currency-formatted strings are parsed with automatic symbol recognition. Supported symbols:$, €, £, ¥, ₹, ₱, ₩, ₪, ₫, ₽, ฿, ₦, ₺, zł, kr, Fr, R, R$, Rp, RM, د.إ, ﷼, Ch$, NT$, HK$, S$, A$, C$, NZ$, MX$.
-$100, $-100).
Text
Any value that doesn’t match the above formats is treated as text (categorical data).Schema
Array of column definitions. Each column defines the structure and metadata for a data field.
Unique, stable identifier for the column. Must match the keys used in
rows objects.Human-readable label displayed in the UI (axis labels, legends, tooltips). Defaults to the
key if not provided.Internal column metadata. Managed automatically by the editor.
Array of data rows. Each row is an object with keys matching the column keys. Values can be strings, numbers or null.
Optional metadata for advanced data processing.
Row object keys must exactly match the
key values in your columns array. Data with keys that don’t have a
corresponding column definition will be ignored.
