ARIA · table fallbackAccessibility
Canvas ARIA metadata is paired with a text summary and table fallback.
Graflume · Alpha
Focus on price movement rather than time by drawing fixed-size rising and falling blocks.
Chart family · Specialized families
Focus on price movement rather than time by drawing fixed-size rising and falling blocks.
priceBlocks()graflume/completerenkoBasic implementation
Start with only the required data and family encoding. Expand the code to run the same example.
Focus on price movement rather than time by drawing fixed-size rising and falling blocks.
StatusLoading
minimal-implementationLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"height": 620,
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"height": 620,
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Common features
Use the tabs to compare header, tooltip, theme, legend, highlight, callout, selection, view controls, and accessibility one feature at a time. Hover over a data mark. On supported charts, move the pointer along the axis to see the nearest value. All exact values are available in the table below.
Add a chart title and supporting description inside the visualization.
StatusLoading
headerLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"locale": "en",
"title": {
"subtitle": "Point and figure chart uses runnable data and options to demonstrate Renko; three-line break.",
"text": "Price blocks"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"locale": "en",
"title": {
"subtitle": "Point and figure chart uses runnable data and options to demonstrate Renko; three-line break.",
"text": "Price blocks"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Reveal exact values from a mark or axis position. Authors can choose locale-aware date/time styles and a time zone with declarative options.
StatusLoading
tooltipLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"hover": true,
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Tooltip",
"trigger": "mark"
}
},
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"hover": true,
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Tooltip",
"trigger": "mark"
}
},
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Apply the current built-in theme from the selector and update every active example together.
StatusLoading
themeLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"locale": "en",
"theme": "graflume-light",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"locale": "en",
"theme": "graflume-light",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Explain the visual meaning of layers, categories, or continuous values.
StatusLoading
legendlegend · explicit · 2 channelsLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Rising"
},
{
"id": "semantic-1",
"label": "Falling"
}
],
"labels": {
"hide": "Hide",
"show": "Show"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Price blocks · Legend",
"visible": true
},
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Rising"
},
{
"id": "semantic-1",
"label": "Falling"
}
],
"labels": {
"hide": "Hide",
"show": "Show"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Price blocks · Legend",
"visible": true
},
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Emphasize a representative datum or spatial position to guide inspection.
StatusLoading
highlighthighlights[] · datum · dateLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "date",
"type": "datum",
"value": "2025-02-18"
}
}
],
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "date",
"type": "datum",
"value": "2025-02-18"
}
}
],
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Show an explanatory callout with automatic collision avoidance and multilingual wrapping.
StatusLoading
calloutannotations[] · datum · date · callout · placement:autoLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"annotations": [
{
"connector": {
"visible": true
},
"detail": "Attach user-authored safe text to a datum, axis range, or normalized plot position.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "date",
"type": "datum",
"value": "2025-02-18"
},
"text": "Point and range highlights · 2025-02-18"
}
],
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
}
}
},
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"annotations": [
{
"connector": {
"visible": true
},
"detail": "Attach user-authored safe text to a datum, axis range, or normalized plot position.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "date",
"type": "datum",
"value": "2025-02-18"
},
"text": "Point and range highlights · 2025-02-18"
}
],
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
}
}
},
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Select and toggle data, then clear it from the background or Escape key.
StatusLoading
selectionselection · multiple · toggleLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"selection": {
"ariaLabel": "Interactive selection",
"clearOnBackground": true,
"clearOnEscape": true,
"highlight": {
"padding": 5
},
"key": "date",
"mode": "multiple",
"toggle": true
}
},
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"selection": {
"ariaLabel": "Interactive selection",
"clearOnBackground": true,
"clearOnEscape": true,
"highlight": {
"padding": 5
},
"key": "date",
"mode": "multiple",
"toggle": true
}
},
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Show or hide zoom, pan, reset, projection, fullscreen, and PNG export one menu at a time. Set controls: false to remove the entire toolbar.
StatusLoading
controlsLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
}
},
"locale": "en",
"padding": {
"top": 52
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
}
},
"locale": "en",
"padding": {
"top": 52
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Pair ARIA descriptions and keyboard guidance with a semantic data table.
StatusLoading
accessibilityLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Accessibility example"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Accessibility example"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"locale": "en",
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Chart-specific features
These tabs come from Graflume's public catalog. Every mode owns runnable data, options, a Quick API, and source-backed feature claims.
Point and figure chart uses runnable data and options to demonstrate Renko; three-line break.
StatusLoading
point-and-figureRenkothree-line breakLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Point and figure chart uses runnable data and options to demonstrate Renko; three-line break.",
"text": "Price blocks"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Point and figure chart uses runnable data and options to demonstrate Renko; three-line break.",
"text": "Price blocks"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Renko chart uses runnable data and options to demonstrate Point and Figure; range bars.
StatusLoading
renkoPoint and Figurerange barsLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Renko chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Renko chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Renko chart uses runnable data and options to demonstrate Point and Figure; range bars.",
"text": "Price blocks · Renko chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.renko('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Renko chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Renko chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Renko chart uses runnable data and options to demonstrate Point and Figure; range bars.",
"text": "Price blocks · Renko chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Kagi chart uses runnable data and options to demonstrate fixed brick/box; percent/ATR/log sizing.
StatusLoading
kagifixed brick/boxpercent/ATR/log sizingLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Kagi chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Kagi chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Kagi chart uses runnable data and options to demonstrate fixed brick/box; percent/ATR/log sizing.",
"text": "Price blocks · Kagi chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.kagi('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Kagi chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Kagi chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Kagi chart uses runnable data and options to demonstrate fixed brick/box; percent/ATR/log sizing.",
"text": "Price blocks · Kagi chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Three line break chart uses runnable data and options to demonstrate partial provenance tooltip; OHLC-source provenance.
StatusLoading
three-line-breakpartial provenance tooltipOHLC-source provenanceLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Three line break chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Three line break chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Three line break chart uses runnable data and options to demonstrate partial provenance tooltip; OHLC-source provenance.",
"text": "Price blocks · Three line break chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.threeLineBreak('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Three line break chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Three line break chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Three line break chart uses runnable data and options to demonstrate partial provenance tooltip; OHLC-source provenance.",
"text": "Price blocks · Three line break chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Range bars chart uses runnable data and options to demonstrate Kagi.
StatusLoading
range-barsKagiLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Range bars chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Range bars chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Range bars chart uses runnable data and options to demonstrate Kagi.",
"text": "Price blocks · Range bars chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.rangeBars('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · Range bars chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Range bars chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Range bars chart uses runnable data and options to demonstrate Kagi.",
"text": "Price blocks · Range bars chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Edge cases
Exercise numeric range, sparse structure, and large inputs with valid data. Each tab materializes data only when needed and never silently repairs invalid values.
Mix zero, very small finite values, and very large finite values to verify automatic domains, precision, and stable geometry. NaN and Infinity remain intentionally invalid. It applies 2 data-integrity rules that preserve finite values and axis domains.
StatusLoading
extreme-rangeextreme-smallextreme-largepositive-domainbudget:marks<=6Loading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2026-01-01 | 5.150000000000001e-10 |
| 2026-02-01 | 9.9e-07 |
| 2026-03-01 | 1.03 |
| 2026-04-01 | 990 |
| 2026-05-01 | 1.03e+06 |
| 2026-06-01 | 1.98e+09 |
Browser API
const data = [
{
"close": 5.150000000000001e-10,
"date": "2026-01-01",
"high": 5.253000000000001e-10,
"low": 4.949e-10,
"open": 5.05e-10,
"value": 5.150000000000001e-10
},
{
"close": 9.9e-7,
"date": "2026-02-01",
"high": 0.0000010302,
"low": 9.702e-7,
"open": 0.0000010099999999999999,
"value": 9.9e-7
},
{
"close": 1.03,
"date": "2026-03-01",
"high": 1.0506,
"low": 0.9898,
"open": 1.01,
"value": 1.03
},
{
"close": 990,
"date": "2026-04-01",
"high": 1030.2,
"low": 970.1999999999999,
"open": 1010,
"value": 990
},
{
"close": 1030000,
"date": "2026-05-01",
"high": 1050600,
"low": 989800,
"open": 1010000,
"value": 1030000
},
{
"close": 1980000000,
"date": "2026-06-01",
"high": 2060400000,
"low": 1940400000,
"open": 2020000000,
"value": 1980000000
}
];
const options = {
"accessibility": {
"description": "A coherent price path reveals regimes without fabricated independent bars. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Price blocks"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"hover": true,
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks",
"trigger": "mark"
}
},
"locale": "en",
"title": {
"subtitle": "edge case · range",
"text": "Price blocks"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.priceBlocks('#chart', data, options);Portable schema
{
"accessibility": {
"description": "A coherent price path reveals regimes without fabricated independent bars. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Price blocks"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"hover": true,
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks",
"trigger": "mark"
}
},
"locale": "en",
"title": {
"subtitle": "edge case · range",
"text": "Price blocks"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Exercise only duplicate, missing, sparse, or out-of-order structures whose meaning is defined for this family. Broken references and malformed tuples are never disguised as successful examples. It applies 3 structural rules that preserve the meaning of missing, duplicate, and ordered values.
StatusLoading
irregular-structuresparseout-of-orderflat-runbudget:marks<=6Loading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-03 | 97.4641 |
| 2025-01-01 | 95.1 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-02 | 96.4177 |
Browser API
const data = [
{
"close": 97.4641,
"date": "2025-01-03"
},
{
"close": 95.1,
"date": "2025-01-01"
},
{
"close": 98.1631,
"date": "2025-01-04"
},
{
"close": 98.4747,
"date": "2025-01-05"
},
{
"close": 98.3969,
"date": "2025-01-06"
},
{
"close": 96.4177,
"date": "2025-01-02"
}
];
const options = {
"accessibility": {
"description": "A coherent price path reveals regimes without fabricated independent bars. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Price blocks · Sparse and irregular structure"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"hover": true,
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Sparse and irregular structure",
"trigger": "mark"
}
},
"locale": "en",
"title": {
"subtitle": "edge case · structure",
"text": "Price blocks · Sparse and irregular structure"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.priceBlocks('#chart', data, options);Portable schema
{
"accessibility": {
"description": "A coherent price path reveals regimes without fabricated independent bars. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Price blocks · Sparse and irregular structure"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"height": 620,
"interaction": {
"hover": true,
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · Sparse and irregular structure",
"trigger": "mark"
}
},
"locale": "en",
"title": {
"subtitle": "edge case · structure",
"text": "Price blocks · Sparse and irregular structure"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Materialize a deterministic compact recipe only when this tab opens. Graflume's performance profile bounds mark count, hit testing, and animation work for the input size. It applies 6 high-volume rules for deterministic generation and bounded output. This family materializes 100,000 logical rows and bounds rendered line points at 8,000.
StatusLoading
high-row-cardinalityall-input-rows-generatedall-input-rows-processeddeterministic-generationbounded-renderinginput:100000zoom-pan-resetbudget:line-points<=8000legend · explicit · 2 channelshighlights[] · datum · dateannotations[] · datum · date · callout · placement:autoLoading
Browser API
const recipe = {
"cardinality": {
"axes": {},
"sourceRows": 100000,
"unit": "rows"
},
"expectedInvariants": [
"finite-json",
"price-positive"
],
"id": "ohlcv-sequence",
"initialView": {
"kind": "domain",
"zoom": 1
},
"outputBudget": {
"maximum": 8000,
"resource": "line-points"
},
"parameters": {
"explicitPerformance": true,
"family": "price-blocks",
"nullableFields": [],
"positiveFields": [],
"scenario": "volume",
"valueFields": [
"close"
],
"valuePolicy": "positive-price"
},
"preview": {
"maximumRows": 12,
"method": "quantiles"
},
"reduction": {
"method": "ohlcv-time-bins",
"stage": "bin"
},
"seed": 137495845,
"shape": "rows",
"version": 2
};
const { data, previewRows, plan } = Graflume.materializeDemoRecipe(recipe);
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · High data volume"
},
"annotations": [
{
"connector": {
"visible": true
},
"detail": "Attach user-authored safe text to a datum, axis range, or normalized plot position.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "date",
"type": "datum",
"value": "2025-05-14"
},
"text": "Point and range highlights · 2025-05-14"
}
],
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"create": {
"adaptive": {
"environment": {
"rowCount": 100000
},
"largeDataNavigation": true,
"profiles": "auto"
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "date",
"type": "datum",
"value": "2025-05-14"
}
}
],
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · High data volume",
"trigger": "mark"
}
},
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Rising"
},
{
"id": "semantic-1",
"label": "Falling"
}
],
"labels": {
"hide": "Hide",
"show": "Show"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Price blocks · High data volume",
"visible": true
},
"locale": "en",
"padding": {
"top": 52
},
"performance": "ultra",
"theme": "graflume-light",
"title": {
"subtitle": "A coherent price path reveals regimes without fabricated independent bars · 100,000 logical rows, screen-aware detail",
"text": "Price blocks · High data volume"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.priceBlocks('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Price blocks · High data volume"
},
"annotations": [
{
"connector": {
"visible": true
},
"detail": "Attach user-authored safe text to a datum, axis range, or normalized plot position.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "date",
"type": "datum",
"value": "2025-05-14"
},
"text": "Point and range highlights · 2025-05-14"
}
],
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
}
}
},
"create": {
"adaptive": {
"environment": {
"rowCount": 100000
},
"largeDataNavigation": true,
"profiles": "auto"
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "date",
"type": "datum",
"value": "2025-05-14"
}
}
],
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks · High data volume",
"trigger": "mark"
}
},
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Rising"
},
{
"id": "semantic-1",
"label": "Falling"
}
],
"labels": {
"hide": "Hide",
"show": "Show"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Price blocks · High data volume",
"visible": true
},
"locale": "en",
"padding": {
"top": 52
},
"performance": "ultra",
"theme": "graflume-light",
"title": {
"subtitle": "A coherent price path reveals regimes without fabricated independent bars · 100,000 logical rows, screen-aware detail",
"text": "Price blocks · High data volume"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Extreme environments
Combine container size, input method, display capability, and user preference instead of guessing a device name. Compare mobile, watch, e-paper, monochrome, dot-matrix, and standards-based extreme environments on the same chart.
Reflow axes, legends, descriptions, and controls from the available container size.
960×540 · adaptive.profiles=responsive-fluidzoom-reflowshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatialPrioritize 44px touch targets, tap tooltips, and collapsed secondary information on a narrow portrait screen.
390×844 · adaptive.profiles=mobile-touchzoom-reflowcoarse-touchvirtual-keyboardshape-rectangledisplay-colorinput-coarsemotion-fullrenderer-canvas-spatialKeep essential marks, values, and stepped controls on a tiny or round screen, with the remaining detail reflowed below.
184×224 · adaptive.profiles=smartwatchzoom-reflowreduced-effectscoarse-touchlow-resourcecutout-roundshape-rounddisplay-colorinput-coarsemotion-reducedrenderer-canvas-spatialviewport-tinyPrefer stable frames, strong contrast, and the data table for low-refresh e-paper displays.
758×1024 · adaptive.profiles=ebook-paperprint-pagedreduced-effectslow-resourceshape-pageddisplay-e-inkinput-keyboardmotion-staticrenderer-canvas-spatialUse strokes, markers, patterns, labels, and the table so color is never the only distinction.
640×400 · adaptive.profiles=monochromereduced-effectsshape-rectangledisplay-monochromeinput-finemotion-reducedrenderer-canvas-spatialReduce decoration and mark density while using strong strokes, integer labels, and stepped zoom on a low-resolution display.
320×240 · adaptive.profiles=dot-matrixzoom-reflowreduced-effectskeyboard-switchlow-resourceshape-rectangledisplay-gridinput-keyboardmotion-staticrenderer-canvas-spatialviewport-tinyReflow prose to one dimension at the 320 CSS px equivalent while retaining chart-local zoom and pan.
320×480 · adaptive.profiles=zoom-reflowzoom-reflowshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatialKeep the chart and explanation in independent viewport segments without crossing the hinge.
720×640 · adaptive.profiles=foldable-dualfoldable-dualshape-dualdisplay-colorinput-finemotion-fullrenderer-canvas-spatialProvide strong focus indication and D-pad, Enter, and Escape operation on a hoverless distance display.
1920×1080 · adaptive.profiles=tv-remotetv-remoteshape-rectangledisplay-colorinput-remotemotion-fullrenderer-canvas-spatialPair a static chart with its description and table, hide controls, and avoid page breaks through the figure.
794×1123 · adaptive.profiles=print-pagedprint-pagedshape-pageddisplay-colorinput-finemotion-staticrenderer-canvas-spatialHonor system colors and borders while retaining patterns, markers, and text as redundant cues.
640×400 · adaptive.profiles=forced-colorsforced-colorsshape-rectangledisplay-high-contrastinput-finemotion-fullrenderer-canvas-spatialComplete transitions immediately and use opaque surfaces and deferred work to reduce motion and transparency load.
640×400 · adaptive.profiles=reduced-effectsreduced-effectsshape-rectangledisplay-colorinput-finemotion-reducedrenderer-canvas-spatialInspect values by tap without hover, keep targets at least 44px, and expose explicit zoom buttons.
390×844 · adaptive.profiles=coarse-touchcoarse-touchshape-rectangledisplay-colorinput-coarsemotion-fullrenderer-canvas-spatialReach every operation with Tab, arrows, Enter, Space, and Escape, with no drag-only action.
640×400 · adaptive.profiles=keyboard-switchkeyboard-switchshape-rectangledisplay-colorinput-keyboardmotion-fullrenderer-canvas-spatialPrefer progressive rendering, sampling, cancellable work, and a static fallback under constrained memory or connectivity.
640×400 · adaptive.profiles=low-resourcelow-resourceshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatialFollow RTL logical flow for prose and tabs while keeping axes, code, and data identifiers in technical LTR order.
640×400 · adaptive.profiles=rtlrtlshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatialReflow vertical prose while keeping the chart and technical surfaces in an independent horizontal panel.
640×400 · adaptive.profiles=vertical-writingvertical-writingshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatialCap chart width instead of stretching indefinitely, using panelization and readable labels on ultrawide or projected surfaces.
1920×720 · adaptive.profiles=ultrawide-projectionultrawide-projectionshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatialProvide short and long descriptions, a semantic table, and status so Canvas or color is never the sole information path.
640×400 · adaptive.profiles=screenreader-braillescreenreader-brailleshape-nonvisualdisplay-colorinput-nonvisualmotion-fullrenderer-canvas-spatialA verified static preview, description, and collapsible row-data table preserve the essential information when scripting is unavailable.
640×400 · adaptive.profiles=no-scriptno-scriptshape-nonvisualdisplay-colorinput-finemotion-staticrenderer-static-fallbackFall back safely to the ordinary 2D or WebGL panel when XR APIs are absent, duplicating depth cues in text and the table.
640×400 · adaptive.profiles=spatial-xrspatial-xrshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatialInset titles, marks, and controls around safe areas and round display bounds so they are not clipped.
184×224 · adaptive.profiles=cutout-roundcutout-roundshape-rounddisplay-colorinput-finemotion-fullrenderer-canvas-spatialviewport-tinyReflow focus controls, the chart, and the active explanation when a virtual keyboard reduces the visual viewport.
390×560 · adaptive.profiles=virtual-keyboardvirtual-keyboardshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatialChoose a profile above to preserve the same data and ChartSpec while reconfiguring the chart for display size, input method, display capability, and user preference.
StatusLoading
adaptivecapability-drivenno-user-agent-branchinglegend · explicit · 2 channelshighlights[] · datum · dateannotations[] · datum · date · callout · placement:autoselection · multiple · toggleLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | closequantitative |
|---|---|
| 2025-01-01 | 95.1 |
| 2025-01-02 | 96.4177 |
| 2025-01-03 | 97.4641 |
| 2025-01-04 | 98.1631 |
| 2025-01-05 | 98.4747 |
| 2025-01-06 | 98.3969 |
| 2025-01-07 | 97.9643 |
| 2025-01-08 | 97.2423 |
| 2025-01-09 | 96.3192 |
| 2025-01-10 | 95.296 |
| 2025-01-11 | 94.2766 |
| 2025-01-12 | 93.3576 |
| 2025-01-13 | 92.62 |
| 2025-01-14 | 92.1232 |
| 2025-01-15 | 91.9016 |
| 2025-01-16 | 91.9631 |
| 2025-01-17 | 92.2911 |
| 2025-01-18 | 92.8475 |
| 2025-01-19 | 93.5779 |
| 2025-01-20 | 94.4172 |
| 2025-01-21 | 95.2956 |
| 2025-01-22 | 96.1441 |
| 2025-01-23 | 96.8995 |
| 2025-01-24 | 97.5083 |
| 2025-01-25 | 97.9299 |
| 2025-01-26 | 98.1388 |
| 2025-01-27 | 98.1252 |
| 2025-01-28 | 97.8956 |
| 2025-01-29 | 97.4723 |
| 2025-01-30 | 96.8921 |
| 2025-01-31 | 96.2043 |
| 2025-02-01 | 95.4682 |
| 2025-02-02 | 94.7495 |
| 2025-02-03 | 94.1163 |
| 2025-02-04 | 93.6345 |
| 2025-02-05 | 93.3624 |
| 2025-02-06 | 93.3458 |
| 2025-02-07 | 93.6128 |
| 2025-02-08 | 94.1706 |
| 2025-02-09 | 95.0024 |
| 2025-02-10 | 96.0672 |
| 2025-02-11 | 97.3012 |
| 2025-02-12 | 98.6223 |
| 2025-02-13 | 99.9361 |
| 2025-02-14 | 101.1441 |
| 2025-02-15 | 102.1532 |
| 2025-02-16 | 102.8851 |
| 2025-02-17 | 103.2854 |
| 2025-02-18 | 103.3306 |
| 2025-02-19 | 103.0322 |
| 2025-02-20 | 102.4378 |
| 2025-02-21 | 101.6282 |
| 2025-02-22 | 100.7105 |
| 2025-02-23 | 99.8085 |
| 2025-02-24 | 99.0497 |
| 2025-02-25 | 98.5523 |
| 2025-02-26 | 98.4121 |
| 2025-02-27 | 98.6906 |
| 2025-02-28 | 99.4076 |
| 2025-03-01 | 100.5364 |
| 2025-03-02 | 102.0054 |
| 2025-03-03 | 103.704 |
| 2025-03-04 | 105.4928 |
| 2025-03-05 | 107.218 |
| 2025-03-06 | 108.7271 |
| 2025-03-07 | 109.8858 |
| 2025-03-08 | 110.5925 |
| 2025-03-09 | 110.7902 |
| 2025-03-10 | 110.4739 |
| 2025-03-11 | 109.6913 |
| 2025-03-12 | 108.5397 |
| 2025-03-13 | 107.1553 |
| 2025-03-14 | 105.6994 |
| 2025-03-15 | 104.3413 |
| 2025-03-16 | 103.2401 |
| 2025-03-17 | 102.5268 |
| 2025-03-18 | 102.291 |
| 2025-03-19 | 102.5698 |
| 2025-03-20 | 103.3445 |
| 2025-03-21 | 104.5421 |
| 2025-03-22 | 106.0432 |
| 2025-03-23 | 107.6952 |
| 2025-03-24 | 109.3286 |
| 2025-03-25 | 110.7759 |
| 2025-03-26 | 111.8893 |
| 2025-03-27 | 112.5571 |
| 2025-03-28 | 112.7151 |
| 2025-03-29 | 112.3534 |
| 2025-03-30 | 111.5169 |
| 2025-03-31 | 110.3002 |
| 2025-04-01 | 108.8365 |
| 2025-04-02 | 107.2832 |
| 2025-04-03 | 105.8047 |
| 2025-04-04 | 104.5551 |
| 2025-04-05 | 103.6618 |
| 2025-04-06 | 103.2134 |
Browser API
const data = [
{
"close": 95.1,
"date": "2025-01-01",
"high": 96.3,
"low": 92.9,
"open": 94,
"value": 95.1,
"volume": 1070
},
{
"close": 96.4177,
"date": "2025-01-02",
"high": 97.6977,
"low": 94.6097,
"open": 95.7997,
"value": 96.4177,
"volume": 1144
},
{
"close": 97.4641,
"date": "2025-01-03",
"high": 98.8241,
"low": 96.0986,
"open": 97.3786,
"value": 97.4641,
"volume": 1217
},
{
"close": 98.1631,
"date": "2025-01-04",
"high": 100.0024,
"low": 96.7931,
"open": 98.5624,
"value": 98.1631,
"volume": 1287
},
{
"close": 98.4747,
"date": "2025-01-05",
"high": 100.7522,
"low": 97.3747,
"open": 99.2322,
"value": 98.4747,
"volume": 1353
},
{
"close": 98.3969,
"date": "2025-01-06",
"high": 100.5404,
"low": 97.2069,
"open": 99.3404,
"value": 98.3969,
"volume": 1415
},
{
"close": 97.9643,
"date": "2025-01-07",
"high": 100.1938,
"low": 96.6843,
"open": 98.9138,
"value": 97.9643,
"volume": 1470
},
{
"close": 97.2423,
"date": "2025-01-08",
"high": 99.4061,
"low": 95.8723,
"open": 98.0461,
"value": 97.2423,
"volume": 1519
},
{
"close": 96.3192,
"date": "2025-01-09",
"high": 98.3193,
"low": 95.2192,
"open": 96.8793,
"value": 96.3192,
"volume": 1562
},
{
"close": 95.296,
"date": "2025-01-10",
"high": 97.0993,
"low": 94.106,
"open": 95.5793,
"value": 95.296,
"volume": 1598
},
{
"close": 94.2766,
"date": "2025-01-11",
"high": 95.5096,
"low": 92.9966,
"open": 94.3096,
"value": 94.2766,
"volume": 1629
},
{
"close": 93.3576,
"date": "2025-01-12",
"high": 94.6376,
"low": 91.8392,
"open": 93.2092,
"value": 93.3576,
"volume": 1656
},
{
"close": 92.62,
"date": "2025-01-13",
"high": 93.98,
"low": 91.2761,
"open": 92.3761,
"value": 92.62,
"volume": 1679
},
{
"close": 92.1232,
"date": "2025-01-14",
"high": 93.5632,
"low": 90.6709,
"open": 91.8609,
"value": 92.1232,
"volume": 1699
},
{
"close": 91.9016,
"date": "2025-01-15",
"high": 93.4216,
"low": 90.389,
"open": 91.669,
"value": 91.9016,
"volume": 1106
},
{
"close": 91.9631,
"date": "2025-01-16",
"high": 93.1631,
"low": 90.4003,
"open": 91.7703,
"value": 91.9631,
"volume": 1126
},
{
"close": 92.2911,
"date": "2025-01-17",
"high": 93.5711,
"low": 91.0131,
"open": 92.1131,
"value": 92.2911,
"volume": 1147
},
{
"close": 92.8475,
"date": "2025-01-18",
"high": 94.2075,
"low": 91.4492,
"open": 92.6392,
"value": 92.8475,
"volume": 1173
},
{
"close": 93.5779,
"date": "2025-01-19",
"high": 95.0179,
"low": 92.0148,
"open": 93.2948,
"value": 93.5779,
"volume": 1202
},
{
"close": 94.4172,
"date": "2025-01-20",
"high": 95.9372,
"low": 92.6673,
"open": 94.0373,
"value": 94.4172,
"volume": 1237
},
{
"close": 95.2956,
"date": "2025-01-21",
"high": 96.4956,
"low": 93.7355,
"open": 94.8355,
"value": 95.2956,
"volume": 1278
},
{
"close": 96.1441,
"date": "2025-01-22",
"high": 97.4241,
"low": 94.4743,
"open": 95.6643,
"value": 96.1441,
"volume": 1325
},
{
"close": 96.8995,
"date": "2025-01-23",
"high": 98.2595,
"low": 95.2164,
"open": 96.4964,
"value": 96.8995,
"volume": 1378
},
{
"close": 97.5083,
"date": "2025-01-24",
"high": 98.9483,
"low": 95.9247,
"open": 97.2947,
"value": 97.5083,
"volume": 1437
},
{
"close": 97.9299,
"date": "2025-01-25",
"high": 99.5269,
"low": 96.8299,
"open": 98.0069,
"value": 97.9299,
"volume": 1502
},
{
"close": 98.1388,
"date": "2025-01-26",
"high": 99.7662,
"low": 96.9488,
"open": 98.5662,
"value": 98.1388,
"volume": 1571
},
{
"close": 98.1252,
"date": "2025-01-27",
"high": 100.1787,
"low": 96.8452,
"open": 98.8987,
"value": 98.1252,
"volume": 1643
},
{
"close": 97.8956,
"date": "2025-01-28",
"high": 100.2955,
"low": 96.5256,
"open": 98.9355,
"value": 97.8956,
"volume": 1104
},
{
"close": 97.4723,
"date": "2025-01-29",
"high": 100.0688,
"low": 96.3723,
"open": 98.6288,
"value": 97.4723,
"volume": 1179
},
{
"close": 96.8921,
"date": "2025-01-30",
"high": 99.4875,
"low": 95.7021,
"open": 97.9675,
"value": 96.8921,
"volume": 1252
},
{
"close": 96.2043,
"date": "2025-01-31",
"high": 98.1891,
"low": 94.9243,
"open": 96.9891,
"value": 96.2043,
"volume": 1323
},
{
"close": 95.4682,
"date": "2025-02-01",
"high": 97.0627,
"low": 94.0982,
"open": 95.7827,
"value": 95.4682,
"volume": 1391
},
{
"close": 94.7495,
"date": "2025-02-02",
"high": 96.1095,
"low": 93.3846,
"open": 94.4846,
"value": 94.7495,
"volume": 1454
},
{
"close": 94.1163,
"date": "2025-02-03",
"high": 95.5563,
"low": 92.0724,
"open": 93.2624,
"value": 94.1163,
"volume": 1511
},
{
"close": 93.6345,
"date": "2025-02-04",
"high": 95.1545,
"low": 91.0128,
"open": 92.2928,
"value": 93.6345,
"volume": 1562
},
{
"close": 93.3624,
"date": "2025-02-05",
"high": 94.5624,
"low": 90.3642,
"open": 91.7342,
"value": 93.3624,
"volume": 1607
},
{
"close": 93.3458,
"date": "2025-02-06",
"high": 94.6258,
"low": 90.6009,
"open": 91.7009,
"value": 93.3458,
"volume": 1645
},
{
"close": 93.6128,
"date": "2025-02-07",
"high": 94.9728,
"low": 91.0527,
"open": 92.2427,
"value": 93.6128,
"volume": 1678
},
{
"close": 94.1706,
"date": "2025-02-08",
"high": 95.6106,
"low": 92.0536,
"open": 93.3336,
"value": 94.1706,
"volume": 1706
},
{
"close": 95.0024,
"date": "2025-02-09",
"high": 96.5224,
"low": 93.5031,
"open": 94.8731,
"value": 95.0024,
"volume": 1730
},
{
"close": 96.0672,
"date": "2025-02-10",
"high": 97.8995,
"low": 94.9672,
"open": 96.6995,
"value": 96.0672,
"volume": 1138
},
{
"close": 97.3012,
"date": "2025-02-11",
"high": 99.8932,
"low": 96.1112,
"open": 98.6132,
"value": 97.3012,
"volume": 1157
},
{
"close": 98.6223,
"date": "2025-02-12",
"high": 101.7664,
"low": 97.3423,
"open": 100.4064,
"value": 98.6223,
"volume": 1177
},
{
"close": 99.9361,
"date": "2025-02-13",
"high": 103.3339,
"low": 98.5661,
"open": 101.8939,
"value": 99.9361,
"volume": 1198
},
{
"close": 101.1441,
"date": "2025-02-14",
"high": 104.4588,
"low": 100.0441,
"open": 102.9388,
"value": 101.1441,
"volume": 1222
},
{
"close": 102.1532,
"date": "2025-02-15",
"high": 104.671,
"low": 100.9632,
"open": 103.471,
"value": 102.1532,
"volume": 1250
},
{
"close": 102.8851,
"date": "2025-02-16",
"high": 104.773,
"low": 101.6051,
"open": 103.493,
"value": 102.8851,
"volume": 1283
},
{
"close": 103.2854,
"date": "2025-02-17",
"high": 104.6454,
"low": 101.7045,
"open": 103.0745,
"value": 103.2854,
"volume": 1322
},
{
"close": 103.3306,
"date": "2025-02-18",
"high": 104.7706,
"low": 101.2366,
"open": 102.3366,
"value": 103.3306,
"volume": 1367
},
{
"close": 103.0322,
"date": "2025-02-19",
"high": 104.5522,
"low": 100.2392,
"open": 101.4292,
"value": 103.0322,
"volume": 1418
},
{
"close": 102.4378,
"date": "2025-02-20",
"high": 103.6378,
"low": 99.226,
"open": 100.506,
"value": 102.4378,
"volume": 1476
},
{
"close": 101.6282,
"date": "2025-02-21",
"high": 102.9082,
"low": 98.3323,
"open": 99.7023,
"value": 101.6282,
"volume": 1539
},
{
"close": 100.7105,
"date": "2025-02-22",
"high": 102.0705,
"low": 98.0185,
"open": 99.1185,
"value": 100.7105,
"volume": 1607
},
{
"close": 99.8085,
"date": "2025-02-23",
"high": 101.2485,
"low": 97.6227,
"open": 98.8127,
"value": 99.8085,
"volume": 1065
},
{
"close": 99.0497,
"date": "2025-02-24",
"high": 100.5697,
"low": 97.521,
"open": 98.801,
"value": 99.0497,
"volume": 1138
},
{
"close": 98.5523,
"date": "2025-02-25",
"high": 100.2666,
"low": 97.1823,
"open": 99.0666,
"value": 98.5523,
"volume": 1213
},
{
"close": 98.4121,
"date": "2025-02-26",
"high": 100.8514,
"low": 97.3121,
"open": 99.5714,
"value": 98.4121,
"volume": 1287
},
{
"close": 98.6906,
"date": "2025-02-27",
"high": 101.63,
"low": 97.5006,
"open": 100.27,
"value": 98.6906,
"volume": 1359
},
{
"close": 99.4076,
"date": "2025-02-28",
"high": 102.5602,
"low": 98.1276,
"open": 101.1202,
"value": 99.4076,
"volume": 1428
},
{
"close": 100.5364,
"date": "2025-03-01",
"high": 103.6082,
"low": 99.1664,
"open": 102.0882,
"value": 100.5364,
"volume": 1492
},
{
"close": 102.0054,
"date": "2025-03-02",
"high": 104.3483,
"low": 100.9054,
"open": 103.1483,
"value": 102.0054,
"volume": 1551
},
{
"close": 103.704,
"date": "2025-03-03",
"high": 105.5579,
"low": 102.514,
"open": 104.2779,
"value": 103.704,
"volume": 1604
},
{
"close": 105.4928,
"date": "2025-03-04",
"high": 106.8528,
"low": 104.1683,
"open": 105.4483,
"value": 105.4928,
"volume": 1651
},
{
"close": 107.218,
"date": "2025-03-05",
"high": 108.658,
"low": 105.247,
"open": 106.617,
"value": 107.218,
"volume": 1692
},
{
"close": 108.7271,
"date": "2025-03-06",
"high": 110.2471,
"low": 106.6223,
"open": 107.7223,
"value": 108.7271,
"volume": 1726
},
{
"close": 109.8858,
"date": "2025-03-07",
"high": 111.0858,
"low": 107.4944,
"open": 108.6844,
"value": 109.8858,
"volume": 1755
},
{
"close": 110.5925,
"date": "2025-03-08",
"high": 111.8725,
"low": 108.1331,
"open": 109.4131,
"value": 110.5925,
"volume": 1167
},
{
"close": 110.7902,
"date": "2025-03-09",
"high": 112.1502,
"low": 108.4508,
"open": 109.8208,
"value": 110.7902,
"volume": 1189
},
{
"close": 110.4739,
"date": "2025-03-10",
"high": 111.9139,
"low": 108.7401,
"open": 109.8401,
"value": 110.4739,
"volume": 1209
},
{
"close": 109.6913,
"date": "2025-03-11",
"high": 111.2113,
"low": 108.2511,
"open": 109.4411,
"value": 109.6913,
"volume": 1229
},
{
"close": 108.5397,
"date": "2025-03-12",
"high": 109.8445,
"low": 107.2597,
"open": 108.6445,
"value": 108.5397,
"volume": 1249
},
{
"close": 107.1553,
"date": "2025-03-13",
"high": 108.8079,
"low": 105.7853,
"open": 107.5279,
"value": 107.1553,
"volume": 1272
},
{
"close": 105.6994,
"date": "2025-03-14",
"high": 107.5813,
"low": 104.5994,
"open": 106.2213,
"value": 105.6994,
"volume": 1299
},
{
"close": 104.3413,
"date": "2025-03-15",
"high": 106.3337,
"low": 103.1513,
"open": 104.8937,
"value": 104.3413,
"volume": 1330
},
{
"close": 103.2401,
"date": "2025-03-16",
"high": 105.2501,
"low": 101.9601,
"open": 103.7301,
"value": 103.2401,
"volume": 1367
},
{
"close": 102.5268,
"date": "2025-03-17",
"high": 104.1045,
"low": 101.1568,
"open": 102.9045,
"value": 102.5268,
"volume": 1410
},
{
"close": 102.291,
"date": "2025-03-18",
"high": 103.8319,
"low": 101.191,
"open": 102.5519,
"value": 102.291,
"volume": 1459
},
{
"close": 102.5698,
"date": "2025-03-19",
"high": 104.106,
"low": 101.3798,
"open": 102.746,
"value": 102.5698,
"volume": 1515
},
{
"close": 103.3445,
"date": "2025-03-20",
"high": 104.9254,
"low": 102.0645,
"open": 103.4854,
"value": 103.3445,
"volume": 1576
},
{
"close": 104.5421,
"date": "2025-03-21",
"high": 106.2119,
"low": 103.1721,
"open": 104.6919,
"value": 104.5421,
"volume": 1030
},
{
"close": 106.0432,
"date": "2025-03-22",
"high": 107.4211,
"low": 104.9432,
"open": 106.2211,
"value": 106.0432,
"volume": 1100
},
{
"close": 107.6952,
"date": "2025-03-23",
"high": 109.1644,
"low": 106.5052,
"open": 107.8844,
"value": 107.6952,
"volume": 1173
},
{
"close": 109.3286,
"date": "2025-03-24",
"high": 110.8369,
"low": 108.0486,
"open": 109.4769,
"value": 109.3286,
"volume": 1247
},
{
"close": 110.7759,
"date": "2025-03-25",
"high": 112.2485,
"low": 109.4059,
"open": 110.8085,
"value": 110.7759,
"volume": 1322
},
{
"close": 111.8893,
"date": "2025-03-26",
"high": 113.4093,
"low": 110.631,
"open": 111.731,
"value": 111.8893,
"volume": 1394
},
{
"close": 112.5571,
"date": "2025-03-27",
"high": 113.7571,
"low": 110.9675,
"open": 112.1575,
"value": 112.5571,
"volume": 1464
},
{
"close": 112.7151,
"date": "2025-03-28",
"high": 113.9951,
"low": 110.7912,
"open": 112.0712,
"value": 112.7151,
"volume": 1530
},
{
"close": 112.3534,
"date": "2025-03-29",
"high": 113.7134,
"low": 110.1524,
"open": 111.5224,
"value": 112.3534,
"volume": 1591
},
{
"close": 111.5169,
"date": "2025-03-30",
"high": 112.9569,
"low": 109.515,
"open": 110.615,
"value": 111.5169,
"volume": 1646
},
{
"close": 110.3002,
"date": "2025-03-31",
"high": 111.8202,
"low": 108.2958,
"open": 109.4858,
"value": 110.3002,
"volume": 1695
},
{
"close": 108.8365,
"date": "2025-04-01",
"high": 110.0365,
"low": 107.0011,
"open": 108.2811,
"value": 108.8365,
"volume": 1737
},
{
"close": 107.2832,
"date": "2025-04-02",
"high": 108.5632,
"low": 105.7649,
"open": 107.1349,
"value": 107.2832,
"volume": 1774
},
{
"close": 105.8047,
"date": "2025-04-03",
"high": 107.5123,
"low": 104.7047,
"open": 106.1523,
"value": 105.8047,
"volume": 1192
},
{
"close": 104.5551,
"date": "2025-04-04",
"high": 106.8411,
"low": 103.3651,
"open": 105.4011,
"value": 104.5551,
"volume": 1218
},
{
"close": 103.6618,
"date": "2025-04-05",
"high": 106.4315,
"low": 102.3818,
"open": 104.9115,
"value": 103.6618,
"volume": 1241
},
{
"close": 103.2134,
"date": "2025-04-06",
"high": 105.8831,
"low": 101.8434,
"open": 104.6831,
"value": 103.2134,
"volume": 1261
}
];
const options = {
"accessibility": {
"description": "A coherent price path reveals regimes without fabricated independent bars. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Point and figure chart: A coherent price path reveals regimes without fabricated independent bars"
},
"annotations": [
{
"connector": {
"visible": true
},
"detail": "Attach user-authored safe text to a datum, axis range, or normalized plot position.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "date",
"type": "datum",
"value": "2025-02-18"
},
"text": "Point and range highlights · 2025-02-18"
}
],
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"create": {
"adaptive": {
"profiles": "auto"
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "date",
"type": "datum",
"value": "2025-02-18"
}
}
],
"interaction": {
"controls": {
"annotations": true,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"selection": {
"ariaLabel": "Interactive selection",
"clearOnBackground": true,
"clearOnEscape": true,
"highlight": {
"padding": 5
},
"key": "date",
"mode": "multiple",
"toggle": true
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks",
"trigger": "mark"
}
},
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Rising"
},
{
"id": "semantic-1",
"label": "Falling"
}
],
"labels": {
"hide": "Hide",
"show": "Show"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Price blocks",
"visible": true
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "A coherent price path reveals regimes without fabricated independent bars",
"text": "Point and figure chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
};
Graflume.pointAndFigure('#chart', data, options);Portable schema
{
"accessibility": {
"description": "A coherent price path reveals regimes without fabricated independent bars. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Point and figure chart: A coherent price path reveals regimes without fabricated independent bars"
},
"annotations": [
{
"connector": {
"visible": true
},
"detail": "Attach user-authored safe text to a datum, axis range, or normalized plot position.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "date",
"type": "datum",
"value": "2025-02-18"
},
"text": "Point and range highlights · 2025-02-18"
}
],
"axes": {
"x": {
"format": {
"dateStyle": "short",
"timeZone": "UTC",
"type": "date"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"currency": "USD",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"type": "currency"
}
}
},
"create": {
"adaptive": {
"profiles": "auto"
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "date",
"type": "datum",
"value": "2025-02-18"
}
}
],
"interaction": {
"controls": {
"annotations": true,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"selection": {
"ariaLabel": "Interactive selection",
"clearOnBackground": true,
"clearOnEscape": true,
"highlight": {
"padding": 5
},
"key": "date",
"mode": "multiple",
"toggle": true
},
"tooltip": {
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "close",
"format": "number",
"label": "Close"
},
{
"field": "brickStart",
"format": "number",
"label": "Brick start"
},
{
"field": "brickEnd",
"format": "number",
"label": "Brick end"
},
{
"field": "brickSize",
"format": "number",
"label": "Brick size"
}
],
"title": "Price blocks",
"trigger": "mark"
}
},
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Rising"
},
{
"id": "semantic-1",
"label": "Falling"
}
],
"labels": {
"hide": "Hide",
"show": "Show"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Price blocks",
"visible": true
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "A coherent price path reveals regimes without fabricated independent bars",
"text": "Point and figure chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Trading day",
"type": "temporal"
},
"y": {
"field": "close",
"title": "Price",
"type": "quantitative"
}
}Catalog
The source-controlled catalog maps callable modes in this family and compatibility identifiers to their canonical modes. This table contains executable entries only.
5 modes · 5 compatibility identifiers
| ID | Name | Quick API | mode | mark | renderer |
|---|---|---|---|---|---|
point-and-figure | Point and figure chart | pointAndFigure() | point-and-figure | point-figure | canvas |
renko | Renko chart | renko() | renko | renko | canvas |
kagi new · current-limitations-2026-08-26 | Kagi chart | kagi() | kagi | renko | canvas |
three-line-break new · current-limitations-2026-08-26 | Three line break chart | threeLineBreak() | three-line-break | renko | canvas |
range-bars new · current-limitations-2026-08-26 | Range bars chart | rangeBars() | range-bars | renko | canvas |
| Identifier | Canonical mode ID |
|---|---|
kagi | kagi |
pointandfigure | point-and-figure |
rangebars | range-bars |
renko | renko |
threelinebreak | three-line-break |
Manual
ARIA · table fallbackCanvas ARIA metadata is paired with a text summary and table fallback.
standard · large · ultraStandard, large, and ultra profiles bound rendering work.