chartlet 0.19.0

Compile structured data into deterministic, accessible static charts
Documentation
{
  "schemaVersion": 1,
  "type": "time",
  "title": "Data hall power draw",
  "source": "Illustrative values, chartlet",
  "showValues": false,
  "timeAxis": {
    "timezone": "UTC",
    "title": "Day"
  },
  "panes": [
    {
      "valueAxis": {
        "title": "Power (kW)",
        "decimals": 1
      },
      "layers": [
        {
          "mark": "area",
          "name": "Total",
          "points": [
            { "time": "2026-03-01", "value": 44.6 },
            { "time": "2026-03-02", "value": 46.1 },
            { "time": "2026-03-03", "value": 47.2 },
            { "time": "2026-03-04", "value": 48.1 },
            { "time": "2026-03-05", "value": 48.3 },
            { "time": "2026-03-06", "value": 46.5 },
            { "time": "2026-03-07", "value": 45.8 },
            { "time": "2026-03-08", "value": 46.8 },
            { "time": "2026-03-09", "value": 45.5 },
            { "time": "2026-03-10", "value": null },
            { "time": "2026-03-11", "value": null },
            { "time": "2026-03-12", "value": 41.4 },
            { "time": "2026-03-13", "value": 38.4 },
            { "time": "2026-03-14", "value": 37.8 },
            { "time": "2026-03-15", "value": 39.3 },
            { "time": "2026-03-16", "value": 39.6 },
            { "time": "2026-03-17", "value": 40.2 },
            { "time": "2026-03-18", "value": 41.4 },
            { "time": "2026-03-19", "value": 42.7 },
            { "time": "2026-03-20", "value": 42.7 },
            { "time": "2026-03-21", "value": 44.2 },
            { "time": "2026-03-22", "value": 47.9 },
            { "time": "2026-03-23", "value": 49.2 },
            { "time": "2026-03-24", "value": 50.4 },
            { "time": "2026-03-25", "value": 50.9 },
            { "time": "2026-03-26", "value": 51.4 },
            { "time": "2026-03-27", "value": 49.1 },
            { "time": "2026-03-28", "value": 48.7 }
          ]
        },
        {
          "mark": "line",
          "name": "Servers",
          "stroke": "bold",
          "points": [
            { "time": "2026-03-01", "value": 22.0 },
            { "time": "2026-03-02", "value": 23.1 },
            { "time": "2026-03-03", "value": 24.0 },
            { "time": "2026-03-04", "value": 24.8 },
            { "time": "2026-03-05", "value": 25.2 },
            { "time": "2026-03-06", "value": 25.4 },
            { "time": "2026-03-07", "value": 25.2 },
            { "time": "2026-03-08", "value": 24.7 },
            { "time": "2026-03-09", "value": 24.0 },
            { "time": "2026-03-10", "value": 23.1 },
            { "time": "2026-03-11", "value": 22.2 },
            { "time": "2026-03-12", "value": 21.4 },
            { "time": "2026-03-13", "value": 20.7 },
            { "time": "2026-03-14", "value": 20.3 },
            { "time": "2026-03-15", "value": 20.1 },
            { "time": "2026-03-16", "value": 20.3 },
            { "time": "2026-03-17", "value": 20.8 },
            { "time": "2026-03-18", "value": 21.6 },
            { "time": "2026-03-19", "value": 22.6 },
            { "time": "2026-03-20", "value": 23.7 },
            { "time": "2026-03-21", "value": 24.7 },
            { "time": "2026-03-22", "value": 25.7 },
            { "time": "2026-03-23", "value": 26.4 },
            { "time": "2026-03-24", "value": 26.8 },
            { "time": "2026-03-25", "value": 26.9 },
            { "time": "2026-03-26", "value": 26.7 },
            { "time": "2026-03-27", "value": 26.1 },
            { "time": "2026-03-28", "value": 25.4 }
          ]
        },
        {
          "mark": "line",
          "name": "Cooling",
          "points": [
            { "time": "2026-03-01", "value": 13.1 },
            { "time": "2026-03-02", "value": 13.4 },
            { "time": "2026-03-03", "value": 13.6 },
            { "time": "2026-03-04", "value": 13.6 },
            { "time": "2026-03-05", "value": 13.5 },
            { "time": "2026-03-06", "value": 13.2 },
            { "time": "2026-03-07", "value": 12.8 },
            { "time": "2026-03-08", "value": 12.3 },
            { "time": "2026-03-09", "value": 11.8 },
            { "time": "2026-03-10", "value": null },
            { "time": "2026-03-11", "value": null },
            { "time": "2026-03-12", "value": 10.1 },
            { "time": "2026-03-13", "value": 9.7 },
            { "time": "2026-03-14", "value": 9.4 },
            { "time": "2026-03-15", "value": 9.3 },
            { "time": "2026-03-16", "value": 9.3 },
            { "time": "2026-03-17", "value": 9.4 },
            { "time": "2026-03-18", "value": 9.7 },
            { "time": "2026-03-19", "value": 10.1 },
            { "time": "2026-03-20", "value": 10.7 },
            { "time": "2026-03-21", "value": 11.3 },
            { "time": "2026-03-22", "value": 12.0 },
            { "time": "2026-03-23", "value": 12.6 },
            { "time": "2026-03-24", "value": 13.3 },
            { "time": "2026-03-25", "value": 13.8 },
            { "time": "2026-03-26", "value": 14.3 },
            { "time": "2026-03-27", "value": 14.6 },
            { "time": "2026-03-28", "value": 14.8 }
          ]
        },
        {
          "mark": "line",
          "name": "Lighting",
          "dash": "dotted",
          "points": [
            { "time": "2026-03-01", "value": 6.3 },
            { "time": "2026-03-02", "value": 6.4 },
            { "time": "2026-03-03", "value": 6.4 },
            { "time": "2026-03-04", "value": 6.5 },
            { "time": "2026-03-05", "value": 6.4 },
            { "time": "2026-03-06", "value": 4.7 },
            { "time": "2026-03-07", "value": 4.6 },
            { "time": "2026-03-08", "value": 6.6 },
            { "time": "2026-03-09", "value": 6.5 },
            { "time": "2026-03-10", "value": 6.7 },
            { "time": "2026-03-11", "value": 6.6 },
            { "time": "2026-03-12", "value": 6.7 },
            { "time": "2026-03-13", "value": 4.8 },
            { "time": "2026-03-14", "value": 4.9 },
            { "time": "2026-03-15", "value": 6.7 },
            { "time": "2026-03-16", "value": 6.8 },
            { "time": "2026-03-17", "value": 6.8 },
            { "time": "2026-03-18", "value": 6.9 },
            { "time": "2026-03-19", "value": 6.8 },
            { "time": "2026-03-20", "value": 5.1 },
            { "time": "2026-03-21", "value": 5.0 },
            { "time": "2026-03-22", "value": 7.0 },
            { "time": "2026-03-23", "value": 7.0 },
            { "time": "2026-03-24", "value": 7.1 },
            { "time": "2026-03-25", "value": 7.0 },
            { "time": "2026-03-26", "value": 7.2 },
            { "time": "2026-03-27", "value": 5.2 },
            { "time": "2026-03-28", "value": 5.3 }
          ]
        },
        {
          "mark": "line",
          "name": "Total forecast",
          "color": "#7c3aed",
          "dash": "dashed",
          "points": [
            { "time": "2026-03-21", "value": 44.2 },
            { "time": "2026-03-22", "value": 44.6 },
            { "time": "2026-03-23", "value": 44.9 },
            { "time": "2026-03-24", "value": 45.2 },
            { "time": "2026-03-25", "value": 45.6 },
            { "time": "2026-03-26", "value": 46.0 },
            { "time": "2026-03-27", "value": 46.3 },
            { "time": "2026-03-28", "value": 46.7 }
          ]
        }
      ]
    }
  ],
  "zoomSteps": [
    { "label": "Four weeks", "from": "2026-03-01", "to": "2026-03-28" },
    { "label": "Last week", "from": "2026-03-22", "to": "2026-03-28" }
  ]
}