The chart component
A component that plots data. Line, area, bar, and pie charts are all supported. Each item in the component is a data point in the graph.
A component that plots data. Line, area, bar, and pie charts are all supported. Each item in the component is a data point in the graph.
| name | required | type | description | 
|---|---|---|---|
| type | REQUIRED | TEXT  | 
The type of chart. One of: "line", "area", "bar", "column", "pie", "scatter", "bubble", "heatmap", "rangeBar" | 
| class | TEXT  | 
class attribute added to the container in HTML. It can be used to apply custom styling to this item through css. Added in v0.18.0. | |
| color | The name of a color in which to display the chart. If there are multiple series in the chart, this parameter can be repeated multiple times. | ||
| height | INTEGER  | 
Height of the chart, in pixels. By default: 250 | |
| horizontal | BOOLEAN  | 
Displays a bar chart with horizontal bars instead of vertical ones. | |
| id | TEXT  | 
id attribute added to the container in HTML. It can be used to target this item through css or for scrolling to this item through links (use "#id" in link url). | |
| labels | BOOLEAN  | 
Whether to show the data labels on the chart or not. | |
| logarithmic | BOOLEAN  | 
Display the y-axis in logarithmic scale. | |
| marker | REAL  | 
Marker size | |
| stacked | BOOLEAN  | 
Whether to cumulate values from different series. | |
| time | BOOLEAN  | 
Whether the x-axis represents time. If set to true, the x values will be parsed and formatted as dates for the user. | |
| title | TEXT  | 
The name of the chart. | |
| toolbar | BOOLEAN  | 
Whether to display a toolbar at the top right of the chart, that offers downloading the data as CSV. | |
| xticks | INTEGER  | 
Number of ticks on the x axis. | |
| xtitle | TEXT  | 
Title of the x axis, displayed below it. | |
| ymax | REAL  | 
The maximum value for the y-axis. | |
| ymin | REAL  | 
The minimal value for the y-axis. | |
| ystep | REAL  | 
Step between ticks on the y axis. | |
| ytitle | TEXT  | 
Title of the y axis, displayed to its left. | |
| ztitle | TEXT  | 
Title of the z axis, displayed in tooltips. | 
| name | required | type | description | 
|---|---|---|---|
| x | REQUIRED | REAL  | 
The value of the point on the horizontal axis | 
| y | REQUIRED | REAL  | 
The value of the point on the vertical axis | 
| label | REAL  | 
An alias for parameter "x" | |
| series | TEXT  | 
If multiple series are represented and share the same y-axis, this parameter can be used to distinguish between them. | |
| value | REAL  | 
An alias for parameter "y" | 
An area chart representing a time series, using the top-level property time.
Ticks on the x axis are adjusted automatically, and ISO datetimes are parsed and displayed in a readable format.
select 
    'chart'             as component,
    'Quarterly Revenue' as title,
    'area'              as type,
    'blue-lt'           as color,
    5                   as marker,
    TRUE                as time;
select 
    '2022-01-01T00:00:00Z' as x,
    15                     as y;
select 
    '2022-04-01T00:00:00Z' as x,
    46                     as y;
select 
    '2022-07-01T00:00:00Z' as x,
    23                     as y;
select 
    '2022-10-01T00:00:00Z' as x,
    70                     as y;
select 
    '2023-01-01T00:00:00Z' as x,
    35                     as y;
select 
    '2023-04-01T00:00:00Z' as x,
    106                    as y;
select 
    '2023-07-01T00:00:00Z' as x,
    53                     as y;
A pie chart.
select 
    'chart'   as component,
    'Answers' as title,
    'pie'     as type,
    TRUE      as labels;
select 
    'Yes' as label,
    65    as value;
select 
    'No' as label,
    35   as value;
A basic bar chart
select 
    'chart'             as component,
    'bar'               as type,
    'Quarterly Results' as title,
    TRUE                as horizontal,
    TRUE                as labels;
select 
    'Tom' as label,
    35    as value;
select 
    'Olive' as label,
    15      as value;
A TreeMap Chart allows you to display hierarchical data in a nested layout. This is useful for visualizing the proportion of each part to the whole.
select 
    'chart'   as component,
    'treemap' as type,
    'Quarterly Results By Region (in k$)' as title,
    TRUE      as labels;
select 
    'North America' as series,
    'United States' as label,
    35              as value;
select 
    'North America' as series,
    'Canada'        as label,
    15              as value;
select 
    'Europe' as series,
    'France' as label,
    30       as value;
select 
    'Europe'  as series,
    'Germany' as label,
    55        as value;
select 
    'Asia'  as series,
    'China' as label,
    20      as value;
select 
    'Asia'  as series,
    'Japan' as label,
    10      as value;
A bar chart with multiple series.
select 
    'chart'    as component,
    'Expenses' as title,
    'bar'      as type,
    TRUE       as stacked,
    TRUE       as toolbar,
    10         as ystep;
select 
    'Marketing' as series,
    2021        as x,
    35          as value;
select 
    'Marketing' as series,
    2022        as x,
    15          as value;
select 
    'Human resources' as series,
    2021              as x,
    30                as value;
select 
    'Human resources' as series,
    2022              as x,
    55                as value;
A line chart with multiple series. One of the most common types of charts, often used to show trends over time.
Also demonstrates the use of the toolbar attribute to allow the user to download the graph as an image or the data as a CSV file.
select 
    'chart'   as component,
    'Revenue' as title,
    0         as ymin,
    TRUE      as toolbar;
select 
    'Chicago Store' as series,
    2021            as x,
    35              as value;
select 
    'Chicago Store' as series,
    2022            as x,
    15              as value;
select 
    'Chicago Store' as series,
    2023            as x,
    45              as value;
select 
    'New York Store' as series,
    2021             as x,
    30               as value;
select 
    'New York Store' as series,
    2022             as x,
    55               as value;
select 
    'New York Store' as series,
    2023             as x,
    19               as value;
A scatter plot with multiple custom options.
select 
    'chart'               as component,
    'Gross domestic product and its growth' as title,
    'scatter'             as type,
    'Growth Rate'         as xtitle,
    'GDP (Trillions USD)' as ytitle,
    500                   as height,
    8                     as marker,
    0                     as xmin,
    10                    as xmax,
    0                     as ymin,
    25                    as ymax,
    5                     as yticks;
select 
    'Brazil' as series,
    2.5      as x,
    2        as y;
select 
    'China' as series,
    6.5     as x,
    14      as y;
select 
    'United States' as series,
    2.3             as x,
    21              as y;
select 
    'France' as series,
    1.5      as x,
    3        as y;
select 
    'South Africa' as series,
    0.9            as x,
    0.3            as y;
You can build heatmaps using the heatmap top-level property.
The data format follows the apexcharts heatmap format, where each series is represented as a line in the chart:
x property of each item will be used as the x-axis value.series property of each item will be used as the y-axis value.y property of each item will be used as the value to display in the heatmapThe color property sets the color of each series separately, in order.
select 
    'chart'                     as component,
    'Survey Results'            as title,
    'heatmap'                   as type,
    'Database managemet system' as ytitle,
    'Year'                      as xtitle,
    'purple'                    as color,
    'purple'                    as color,
    'purple'                    as color;
select 
    'PostgreSQL' as series,
    '2000'       as x,
    48           as y;
select 
    'SQLite' as series,
    '2000'   as x,
    44       as y;
select 
    'MySQL' as series,
    '2000'  as x,
    78      as y;
select 
    'PostgreSQL' as series,
    '2010'       as x,
    65           as y;
select 
    'SQLite' as series,
    '2010'   as x,
    62       as y;
select 
    'MySQL' as series,
    '2010'  as x,
    83      as y;
select 
    'PostgreSQL' as series,
    '2020'       as x,
    73           as y;
select 
    'SQLite' as series,
    '2020'   as x,
    38       as y;
select 
    'MySQL' as series,
    '2020'  as x,
    87      as y;
A timeline displaying events with a start and an end date
select 
    'chart'            as component,
    'Project Timeline' as title,
    'rangeBar'         as type,
    TRUE               as time,
    'teal'             as color,
    'cyan'             as color,
    TRUE               as labels,
    '2021-12-28'       as xmin,
    '2022-01-04'       as xmax;
select 
    'Phase 1'    as series,
    'Operations' as label,
    '2021-12-29' as value,
    '2022-01-02' as value;
select 
    'Phase 2'    as series,
    'Operations' as label,
    '2022-01-03' as value,
    '2022-01-04' as value;
select 
    'Yearly maintenance' as series,
    'Maintenance'        as label,
    '2022-01-01'         as value,
    '2022-01-03'         as value;
You can create information-dense dashboards by using the card component to put multiple charts on the same line.
For this, create one sql file per visualization you want to show,
and set the embed attribute of the card component
to the path of the file you want to include, followed by ?_sqlpage_embed.
select 
    'card' as component,
    'A dashboard with multiple graphs on the same line' as title,
    2      as columns;
select 
    '/examples/chart.sql?color=green&n=42&_sqlpage_embed' as embed;
select 
    '/examples/chart.sql?_sqlpage_embed' as embed;