-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathv4-migration.html
56 lines (56 loc) · 36.2 KB
/
v4-migration.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>4.x Migration Guide | Chart.js</title>
<meta name="generator" content="VuePress 1.9.9">
<link rel="icon" href="/docs/latest/favicon.ico">
<meta name="description" content="Open source HTML5 Charts for your website">
<link rel="preload" href="/docs/latest/assets/css/0.styles.6dc2f403.css" as="style"><link rel="preload" href="/docs/latest/assets/js/app.1775731d.js" as="script"><link rel="preload" href="/docs/latest/assets/js/2.2c2b1036.js" as="script"><link rel="preload" href="/docs/latest/assets/js/191.35859b30.js" as="script"><link rel="prefetch" href="/docs/latest/assets/js/10.ba172174.js"><link rel="prefetch" href="/docs/latest/assets/js/100.559bdb31.js"><link rel="prefetch" href="/docs/latest/assets/js/101.734a357a.js"><link rel="prefetch" href="/docs/latest/assets/js/102.e53ce872.js"><link rel="prefetch" href="/docs/latest/assets/js/103.9940e4fa.js"><link rel="prefetch" href="/docs/latest/assets/js/104.469f66c7.js"><link rel="prefetch" href="/docs/latest/assets/js/105.5ae465af.js"><link rel="prefetch" href="/docs/latest/assets/js/106.716d6eac.js"><link rel="prefetch" href="/docs/latest/assets/js/107.0833c00c.js"><link rel="prefetch" href="/docs/latest/assets/js/108.d33f5d8a.js"><link rel="prefetch" href="/docs/latest/assets/js/109.ea3e6d92.js"><link rel="prefetch" href="/docs/latest/assets/js/11.d1a995d1.js"><link rel="prefetch" href="/docs/latest/assets/js/110.0e4a266d.js"><link rel="prefetch" href="/docs/latest/assets/js/111.c9c05ded.js"><link rel="prefetch" href="/docs/latest/assets/js/112.9016026c.js"><link rel="prefetch" href="/docs/latest/assets/js/113.a23a9546.js"><link rel="prefetch" href="/docs/latest/assets/js/114.d891a2d6.js"><link rel="prefetch" href="/docs/latest/assets/js/115.cdcc4368.js"><link rel="prefetch" href="/docs/latest/assets/js/116.251f2223.js"><link rel="prefetch" href="/docs/latest/assets/js/117.7eb3b50a.js"><link rel="prefetch" href="/docs/latest/assets/js/118.adac9d3d.js"><link rel="prefetch" href="/docs/latest/assets/js/119.d911cbbc.js"><link rel="prefetch" href="/docs/latest/assets/js/12.fa9e2b79.js"><link rel="prefetch" href="/docs/latest/assets/js/120.0a1625d8.js"><link rel="prefetch" href="/docs/latest/assets/js/121.64e65c08.js"><link rel="prefetch" href="/docs/latest/assets/js/122.ea83d994.js"><link rel="prefetch" href="/docs/latest/assets/js/123.43345e7d.js"><link rel="prefetch" href="/docs/latest/assets/js/124.9ef914cc.js"><link rel="prefetch" href="/docs/latest/assets/js/125.ba02abb0.js"><link rel="prefetch" href="/docs/latest/assets/js/126.0e7f9dce.js"><link rel="prefetch" href="/docs/latest/assets/js/127.b8d32dad.js"><link rel="prefetch" href="/docs/latest/assets/js/128.7ac6e558.js"><link rel="prefetch" href="/docs/latest/assets/js/129.d20213cd.js"><link rel="prefetch" href="/docs/latest/assets/js/13.40942fa2.js"><link rel="prefetch" href="/docs/latest/assets/js/130.81a05cd4.js"><link rel="prefetch" href="/docs/latest/assets/js/131.daed6849.js"><link rel="prefetch" href="/docs/latest/assets/js/132.4d47b2eb.js"><link rel="prefetch" href="/docs/latest/assets/js/133.05ab502f.js"><link rel="prefetch" href="/docs/latest/assets/js/134.83827ecd.js"><link rel="prefetch" href="/docs/latest/assets/js/135.7bff0bd7.js"><link rel="prefetch" href="/docs/latest/assets/js/136.98f8440e.js"><link rel="prefetch" href="/docs/latest/assets/js/137.aaec3459.js"><link rel="prefetch" href="/docs/latest/assets/js/138.c192277e.js"><link rel="prefetch" href="/docs/latest/assets/js/139.22d54ea6.js"><link rel="prefetch" href="/docs/latest/assets/js/14.5de42ba2.js"><link rel="prefetch" href="/docs/latest/assets/js/140.386704e4.js"><link rel="prefetch" href="/docs/latest/assets/js/141.a9195816.js"><link rel="prefetch" href="/docs/latest/assets/js/142.b78395bb.js"><link rel="prefetch" href="/docs/latest/assets/js/143.170ad88b.js"><link rel="prefetch" href="/docs/latest/assets/js/144.76e219db.js"><link rel="prefetch" href="/docs/latest/assets/js/145.191861d0.js"><link rel="prefetch" href="/docs/latest/assets/js/146.e78f7eab.js"><link rel="prefetch" href="/docs/latest/assets/js/147.aed576b7.js"><link rel="prefetch" href="/docs/latest/assets/js/148.51a28e75.js"><link rel="prefetch" href="/docs/latest/assets/js/149.bacf0bd4.js"><link rel="prefetch" href="/docs/latest/assets/js/15.012e7206.js"><link rel="prefetch" href="/docs/latest/assets/js/150.fe20362f.js"><link rel="prefetch" href="/docs/latest/assets/js/151.c05dbf6f.js"><link rel="prefetch" href="/docs/latest/assets/js/152.f99236fb.js"><link rel="prefetch" href="/docs/latest/assets/js/153.ef68597f.js"><link rel="prefetch" href="/docs/latest/assets/js/154.c023b64b.js"><link rel="prefetch" href="/docs/latest/assets/js/155.3f68a1be.js"><link rel="prefetch" href="/docs/latest/assets/js/156.66b7693f.js"><link rel="prefetch" href="/docs/latest/assets/js/157.3c0180a1.js"><link rel="prefetch" href="/docs/latest/assets/js/158.cf525578.js"><link rel="prefetch" href="/docs/latest/assets/js/159.4b37336f.js"><link rel="prefetch" href="/docs/latest/assets/js/16.a464ca3c.js"><link rel="prefetch" href="/docs/latest/assets/js/160.e108118b.js"><link rel="prefetch" href="/docs/latest/assets/js/161.aa5bb701.js"><link rel="prefetch" href="/docs/latest/assets/js/162.d16c9512.js"><link rel="prefetch" href="/docs/latest/assets/js/163.f2f33424.js"><link rel="prefetch" href="/docs/latest/assets/js/164.2d008c84.js"><link rel="prefetch" href="/docs/latest/assets/js/165.3e4e7c11.js"><link rel="prefetch" href="/docs/latest/assets/js/166.57daa7ea.js"><link rel="prefetch" href="/docs/latest/assets/js/167.f8e315e4.js"><link rel="prefetch" href="/docs/latest/assets/js/168.fdb7618a.js"><link rel="prefetch" href="/docs/latest/assets/js/169.c7aab3a9.js"><link rel="prefetch" href="/docs/latest/assets/js/17.ed55170f.js"><link rel="prefetch" href="/docs/latest/assets/js/170.d26e2242.js"><link rel="prefetch" href="/docs/latest/assets/js/171.c5b6f4a1.js"><link rel="prefetch" href="/docs/latest/assets/js/172.b564ffcb.js"><link rel="prefetch" href="/docs/latest/assets/js/173.abeba639.js"><link rel="prefetch" href="/docs/latest/assets/js/174.f93bd291.js"><link rel="prefetch" href="/docs/latest/assets/js/175.5d366e3d.js"><link rel="prefetch" href="/docs/latest/assets/js/176.e54efab4.js"><link rel="prefetch" href="/docs/latest/assets/js/177.496ceef2.js"><link rel="prefetch" href="/docs/latest/assets/js/178.12804673.js"><link rel="prefetch" href="/docs/latest/assets/js/179.32bf04c8.js"><link rel="prefetch" href="/docs/latest/assets/js/18.ba4debdf.js"><link rel="prefetch" href="/docs/latest/assets/js/180.e8f6ed27.js"><link rel="prefetch" href="/docs/latest/assets/js/181.c8978a79.js"><link rel="prefetch" href="/docs/latest/assets/js/182.63d7af06.js"><link rel="prefetch" href="/docs/latest/assets/js/183.55db8d56.js"><link rel="prefetch" href="/docs/latest/assets/js/184.18a07965.js"><link rel="prefetch" href="/docs/latest/assets/js/185.3a061aeb.js"><link rel="prefetch" href="/docs/latest/assets/js/186.a0e4fc7f.js"><link rel="prefetch" href="/docs/latest/assets/js/187.4955b620.js"><link rel="prefetch" href="/docs/latest/assets/js/188.c1eef544.js"><link rel="prefetch" href="/docs/latest/assets/js/189.a6ac08c5.js"><link rel="prefetch" href="/docs/latest/assets/js/19.5a1c7f07.js"><link rel="prefetch" href="/docs/latest/assets/js/190.02c0bd04.js"><link rel="prefetch" href="/docs/latest/assets/js/192.605a899d.js"><link rel="prefetch" href="/docs/latest/assets/js/193.9873a5b3.js"><link rel="prefetch" href="/docs/latest/assets/js/194.f2b24cdc.js"><link rel="prefetch" href="/docs/latest/assets/js/195.24641d51.js"><link rel="prefetch" href="/docs/latest/assets/js/196.7b3fce99.js"><link rel="prefetch" href="/docs/latest/assets/js/197.f4fe5075.js"><link rel="prefetch" href="/docs/latest/assets/js/198.7361b0f4.js"><link rel="prefetch" href="/docs/latest/assets/js/199.9a52b08a.js"><link rel="prefetch" href="/docs/latest/assets/js/20.befb3878.js"><link rel="prefetch" href="/docs/latest/assets/js/200.96e5f1ed.js"><link rel="prefetch" href="/docs/latest/assets/js/201.8fb753af.js"><link rel="prefetch" href="/docs/latest/assets/js/202.546fb27c.js"><link rel="prefetch" href="/docs/latest/assets/js/203.c0a58e57.js"><link rel="prefetch" href="/docs/latest/assets/js/204.f3dcd08d.js"><link rel="prefetch" href="/docs/latest/assets/js/205.e39e6cc0.js"><link rel="prefetch" href="/docs/latest/assets/js/206.2040b423.js"><link rel="prefetch" href="/docs/latest/assets/js/207.d3de4a57.js"><link rel="prefetch" href="/docs/latest/assets/js/208.28fe0256.js"><link rel="prefetch" href="/docs/latest/assets/js/209.9be0ffc2.js"><link rel="prefetch" href="/docs/latest/assets/js/21.e052604d.js"><link rel="prefetch" href="/docs/latest/assets/js/210.4a57137a.js"><link rel="prefetch" href="/docs/latest/assets/js/211.17e55bd6.js"><link rel="prefetch" href="/docs/latest/assets/js/212.1c8d2acd.js"><link rel="prefetch" href="/docs/latest/assets/js/213.2dbf6c1c.js"><link rel="prefetch" href="/docs/latest/assets/js/214.2f1440f9.js"><link rel="prefetch" href="/docs/latest/assets/js/215.11ed947f.js"><link rel="prefetch" href="/docs/latest/assets/js/216.74863e9d.js"><link rel="prefetch" href="/docs/latest/assets/js/217.a8419f14.js"><link rel="prefetch" href="/docs/latest/assets/js/218.6bf9fc78.js"><link rel="prefetch" href="/docs/latest/assets/js/219.0169da15.js"><link rel="prefetch" href="/docs/latest/assets/js/22.28f307d4.js"><link rel="prefetch" href="/docs/latest/assets/js/220.c575f379.js"><link rel="prefetch" href="/docs/latest/assets/js/221.2947993e.js"><link rel="prefetch" href="/docs/latest/assets/js/222.2afa8e58.js"><link rel="prefetch" href="/docs/latest/assets/js/223.123abe52.js"><link rel="prefetch" href="/docs/latest/assets/js/224.93f4958f.js"><link rel="prefetch" href="/docs/latest/assets/js/225.a679632e.js"><link rel="prefetch" href="/docs/latest/assets/js/226.1f372629.js"><link rel="prefetch" href="/docs/latest/assets/js/227.01f26922.js"><link rel="prefetch" href="/docs/latest/assets/js/228.5b8a33de.js"><link rel="prefetch" href="/docs/latest/assets/js/229.2c43b3bd.js"><link rel="prefetch" href="/docs/latest/assets/js/23.2c1803cf.js"><link rel="prefetch" href="/docs/latest/assets/js/230.f6aef453.js"><link rel="prefetch" href="/docs/latest/assets/js/231.cb4e528d.js"><link rel="prefetch" href="/docs/latest/assets/js/232.ff3c6c5a.js"><link rel="prefetch" href="/docs/latest/assets/js/233.a09dfb10.js"><link rel="prefetch" href="/docs/latest/assets/js/234.16f55136.js"><link rel="prefetch" href="/docs/latest/assets/js/235.96d6441a.js"><link rel="prefetch" href="/docs/latest/assets/js/236.48813a68.js"><link rel="prefetch" href="/docs/latest/assets/js/237.f990a1ec.js"><link rel="prefetch" href="/docs/latest/assets/js/238.e5b4f649.js"><link rel="prefetch" href="/docs/latest/assets/js/239.291dc9f2.js"><link rel="prefetch" href="/docs/latest/assets/js/24.77df6298.js"><link rel="prefetch" href="/docs/latest/assets/js/240.8103995d.js"><link rel="prefetch" href="/docs/latest/assets/js/241.77f1ef6d.js"><link rel="prefetch" href="/docs/latest/assets/js/242.ec2780d4.js"><link rel="prefetch" href="/docs/latest/assets/js/243.37cf3af4.js"><link rel="prefetch" href="/docs/latest/assets/js/244.8dd0e249.js"><link rel="prefetch" href="/docs/latest/assets/js/245.6be09f0f.js"><link rel="prefetch" href="/docs/latest/assets/js/246.f8d4fa7a.js"><link rel="prefetch" href="/docs/latest/assets/js/247.42420fdd.js"><link rel="prefetch" href="/docs/latest/assets/js/248.c23ee98d.js"><link rel="prefetch" href="/docs/latest/assets/js/249.ab477af3.js"><link rel="prefetch" href="/docs/latest/assets/js/25.c7de846b.js"><link rel="prefetch" href="/docs/latest/assets/js/250.6e8d2ba3.js"><link rel="prefetch" href="/docs/latest/assets/js/251.b6b2f974.js"><link rel="prefetch" href="/docs/latest/assets/js/252.8ff946bc.js"><link rel="prefetch" href="/docs/latest/assets/js/253.16fcc019.js"><link rel="prefetch" href="/docs/latest/assets/js/254.b8ab3153.js"><link rel="prefetch" href="/docs/latest/assets/js/255.c6168ca8.js"><link rel="prefetch" href="/docs/latest/assets/js/256.8f91fc92.js"><link rel="prefetch" href="/docs/latest/assets/js/257.9d3758c5.js"><link rel="prefetch" href="/docs/latest/assets/js/258.cd89cf43.js"><link rel="prefetch" href="/docs/latest/assets/js/259.61dbc16e.js"><link rel="prefetch" href="/docs/latest/assets/js/26.03fea601.js"><link rel="prefetch" href="/docs/latest/assets/js/260.59b86bdc.js"><link rel="prefetch" href="/docs/latest/assets/js/261.e678254e.js"><link rel="prefetch" href="/docs/latest/assets/js/262.ce0c9d58.js"><link rel="prefetch" href="/docs/latest/assets/js/263.02a09c3e.js"><link rel="prefetch" href="/docs/latest/assets/js/264.9e7aa5e6.js"><link rel="prefetch" href="/docs/latest/assets/js/265.caa756fe.js"><link rel="prefetch" href="/docs/latest/assets/js/266.6e310b52.js"><link rel="prefetch" href="/docs/latest/assets/js/267.c48b8214.js"><link rel="prefetch" href="/docs/latest/assets/js/268.77c31416.js"><link rel="prefetch" href="/docs/latest/assets/js/27.a0d9661b.js"><link rel="prefetch" href="/docs/latest/assets/js/28.c2bbd22e.js"><link rel="prefetch" href="/docs/latest/assets/js/29.edc6cdb1.js"><link rel="prefetch" href="/docs/latest/assets/js/3.bb127fce.js"><link rel="prefetch" href="/docs/latest/assets/js/30.58943817.js"><link rel="prefetch" href="/docs/latest/assets/js/31.05bf300d.js"><link rel="prefetch" href="/docs/latest/assets/js/32.86c21b69.js"><link rel="prefetch" href="/docs/latest/assets/js/33.a04bc030.js"><link rel="prefetch" href="/docs/latest/assets/js/34.9261e152.js"><link rel="prefetch" href="/docs/latest/assets/js/35.9f137c62.js"><link rel="prefetch" href="/docs/latest/assets/js/36.b63af66d.js"><link rel="prefetch" href="/docs/latest/assets/js/37.f571e398.js"><link rel="prefetch" href="/docs/latest/assets/js/38.e0ccae6b.js"><link rel="prefetch" href="/docs/latest/assets/js/39.6686479c.js"><link rel="prefetch" href="/docs/latest/assets/js/4.5897c077.js"><link rel="prefetch" href="/docs/latest/assets/js/40.d2ea3899.js"><link rel="prefetch" href="/docs/latest/assets/js/41.70418b50.js"><link rel="prefetch" href="/docs/latest/assets/js/42.4ff9f3d5.js"><link rel="prefetch" href="/docs/latest/assets/js/43.bf702a0d.js"><link rel="prefetch" href="/docs/latest/assets/js/44.c9410168.js"><link rel="prefetch" href="/docs/latest/assets/js/45.a3605880.js"><link rel="prefetch" href="/docs/latest/assets/js/46.23692797.js"><link rel="prefetch" href="/docs/latest/assets/js/47.6078eee1.js"><link rel="prefetch" href="/docs/latest/assets/js/48.a071f769.js"><link rel="prefetch" href="/docs/latest/assets/js/49.211def19.js"><link rel="prefetch" href="/docs/latest/assets/js/5.ed1eea17.js"><link rel="prefetch" href="/docs/latest/assets/js/50.0c989648.js"><link rel="prefetch" href="/docs/latest/assets/js/51.57b0568d.js"><link rel="prefetch" href="/docs/latest/assets/js/52.821bc064.js"><link rel="prefetch" href="/docs/latest/assets/js/53.a10f3570.js"><link rel="prefetch" href="/docs/latest/assets/js/54.e364607e.js"><link rel="prefetch" href="/docs/latest/assets/js/55.74f20f58.js"><link rel="prefetch" href="/docs/latest/assets/js/56.9bb69bd9.js"><link rel="prefetch" href="/docs/latest/assets/js/57.d13e1f2c.js"><link rel="prefetch" href="/docs/latest/assets/js/58.ae64ef04.js"><link rel="prefetch" href="/docs/latest/assets/js/59.18fb0daf.js"><link rel="prefetch" href="/docs/latest/assets/js/6.6a7a006f.js"><link rel="prefetch" href="/docs/latest/assets/js/60.e1b75e7e.js"><link rel="prefetch" href="/docs/latest/assets/js/61.6e22e73d.js"><link rel="prefetch" href="/docs/latest/assets/js/62.2c43dacd.js"><link rel="prefetch" href="/docs/latest/assets/js/63.3e5c59ef.js"><link rel="prefetch" href="/docs/latest/assets/js/64.7e7d10cb.js"><link rel="prefetch" href="/docs/latest/assets/js/65.6d7b327c.js"><link rel="prefetch" href="/docs/latest/assets/js/66.47306b72.js"><link rel="prefetch" href="/docs/latest/assets/js/67.ef802daf.js"><link rel="prefetch" href="/docs/latest/assets/js/68.4c36f508.js"><link rel="prefetch" href="/docs/latest/assets/js/69.6884afc3.js"><link rel="prefetch" href="/docs/latest/assets/js/7.2b9bb0cc.js"><link rel="prefetch" href="/docs/latest/assets/js/70.753aeeeb.js"><link rel="prefetch" href="/docs/latest/assets/js/71.02132ae7.js"><link rel="prefetch" href="/docs/latest/assets/js/72.93a262fa.js"><link rel="prefetch" href="/docs/latest/assets/js/73.63823760.js"><link rel="prefetch" href="/docs/latest/assets/js/74.8bbf353a.js"><link rel="prefetch" href="/docs/latest/assets/js/75.4b40b642.js"><link rel="prefetch" href="/docs/latest/assets/js/76.87207961.js"><link rel="prefetch" href="/docs/latest/assets/js/77.74919e96.js"><link rel="prefetch" href="/docs/latest/assets/js/78.7690f014.js"><link rel="prefetch" href="/docs/latest/assets/js/79.e269897b.js"><link rel="prefetch" href="/docs/latest/assets/js/8.e267e498.js"><link rel="prefetch" href="/docs/latest/assets/js/80.e6365a67.js"><link rel="prefetch" href="/docs/latest/assets/js/81.333a82f2.js"><link rel="prefetch" href="/docs/latest/assets/js/82.d944b8b9.js"><link rel="prefetch" href="/docs/latest/assets/js/83.c27c28df.js"><link rel="prefetch" href="/docs/latest/assets/js/84.9e1ca72d.js"><link rel="prefetch" href="/docs/latest/assets/js/85.8aed2510.js"><link rel="prefetch" href="/docs/latest/assets/js/86.13b36328.js"><link rel="prefetch" href="/docs/latest/assets/js/87.a66620db.js"><link rel="prefetch" href="/docs/latest/assets/js/88.d2527a78.js"><link rel="prefetch" href="/docs/latest/assets/js/89.45cfdeb3.js"><link rel="prefetch" href="/docs/latest/assets/js/9.3427a556.js"><link rel="prefetch" href="/docs/latest/assets/js/90.5793b0b0.js"><link rel="prefetch" href="/docs/latest/assets/js/91.292294a6.js"><link rel="prefetch" href="/docs/latest/assets/js/92.26377cb3.js"><link rel="prefetch" href="/docs/latest/assets/js/93.b98fe0e9.js"><link rel="prefetch" href="/docs/latest/assets/js/94.d98598be.js"><link rel="prefetch" href="/docs/latest/assets/js/95.e241010d.js"><link rel="prefetch" href="/docs/latest/assets/js/96.e2a1f228.js"><link rel="prefetch" href="/docs/latest/assets/js/97.383a3a23.js"><link rel="prefetch" href="/docs/latest/assets/js/98.ad06bcf6.js"><link rel="prefetch" href="/docs/latest/assets/js/99.809adbec.js">
<link rel="stylesheet" href="/docs/latest/assets/css/0.styles.6dc2f403.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/latest/" class="home-link router-link-active"><img src="/docs/latest/favicon.ico" alt="Chart.js" class="logo"> <span class="site-name can-hide">Chart.js</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/docs/latest/" class="nav-link">
Home
</a></div><div class="nav-item"><a href="/docs/latest/api/" class="nav-link">
API
</a></div><div class="nav-item"><a href="/docs/latest/samples/" class="nav-link">
Samples
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Community Menu" class="dropdown-title"><span class="title">Ecosystem</span> <span class="arrow down"></span></button> <button type="button" aria-label="Community Menu" class="mobile-dropdown-title"><span class="title">Ecosystem</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://github.com/chartjs/awesome" target="_blank" rel="noopener noreferrer" class="nav-link external">
Awesome
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://discord.gg/HxEguTK6av" target="_blank" rel="noopener noreferrer" class="nav-link external">
Discord
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://stackoverflow.com/questions/tagged/chart.js" target="_blank" rel="noopener noreferrer" class="nav-link external">
Stack Overflow
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <a href="https://github.com/chartjs/Chart.js" target="_blank" rel="noopener noreferrer" class="repo-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/docs/latest/" class="nav-link">
Home
</a></div><div class="nav-item"><a href="/docs/latest/api/" class="nav-link">
API
</a></div><div class="nav-item"><a href="/docs/latest/samples/" class="nav-link">
Samples
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Community Menu" class="dropdown-title"><span class="title">Ecosystem</span> <span class="arrow down"></span></button> <button type="button" aria-label="Community Menu" class="mobile-dropdown-title"><span class="title">Ecosystem</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://github.com/chartjs/awesome" target="_blank" rel="noopener noreferrer" class="nav-link external">
Awesome
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://discord.gg/HxEguTK6av" target="_blank" rel="noopener noreferrer" class="nav-link external">
Discord
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://stackoverflow.com/questions/tagged/chart.js" target="_blank" rel="noopener noreferrer" class="nav-link external">
Stack Overflow
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <a href="https://github.com/chartjs/Chart.js" target="_blank" rel="noopener noreferrer" class="repo-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><a href="/docs/latest/" aria-current="page" class="sidebar-link">Chart.js</a></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Getting Started</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>General</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Configuration</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Chart Types</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Axes</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Developers</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>Migration</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/docs/latest/migration/v4-migration.html" aria-current="page" class="active sidebar-link">4.x Migration Guide</a></li><li><a href="/docs/latest/migration/v3-migration.html" class="sidebar-link">3.x Migration Guide</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="_4-x-migration-guide"><a href="#_4-x-migration-guide" class="header-anchor">#</a> 4.x Migration Guide</h1> <p>Chart.js 4.0 introduces a number of breaking changes. We tried keeping the amount of breaking changes to a minimum. For some features and bug fixes it was necessary to break backwards compatibility, but we aimed to do so only when worth the benefit.</p> <h2 id="end-user-migration"><a href="#end-user-migration" class="header-anchor">#</a> End user migration</h2> <h3 id="charts"><a href="#charts" class="header-anchor">#</a> Charts</h3> <ul><li>Charts don't override the default tooltip callbacks, so all chart types have the same-looking tooltips.</li> <li>Default scale override has been removed if the configured scale starts with <code>x</code>/<code>y</code>. Defining <code>xAxes</code> in your config will now create a second scale instead of overriding the default <code>x</code> axis.</li></ul> <h3 id="options"><a href="#options" class="header-anchor">#</a> Options</h3> <p>A number of changes were made to the configuration options passed to the <code>Chart</code> constructor. Those changes are documented below.</p> <h4 id="specific-changes"><a href="#specific-changes" class="header-anchor">#</a> Specific changes</h4> <ul><li>The radialLinear grid indexable and scriptable options don't decrease the index of the specified grid line anymore.</li> <li>The <code>destroy</code> plugin hook has been removed and replaced with <code>afterDestroy</code>.</li> <li>Ticks callback on time scale now receives timestamp instead of a formatted label.</li> <li><code>scales[id].grid.drawBorder</code> has been renamed to <code>scales[id].border.display</code>.</li> <li><code>scales[id].grid.borderWidth</code> has been renamed to <code>scales[id].border.width</code>.</li> <li><code>scales[id].grid.borderColor</code> has been renamed to <code>scales[id].border.color</code>.</li> <li><code>scales[id].grid.borderDash</code> has been renamed to <code>scales[id].border.dash</code>.</li> <li><code>scales[id].grid.borderDashOffset</code> has been renamed to <code>scales[id].border.dashOffset</code>.</li> <li>The z index for the border of a scale is now configurable instead of being 1 higher as the grid z index.</li> <li>Linear scales now add and subtracts <code>5%</code> of the max value to the range if the min and max are the same instead of <code>1</code>.</li> <li>If the tooltip callback returns <code>undefined</code>, then the default callback will be used.</li> <li><code>maintainAspectRatio</code> respects container height.</li> <li>Time and timeseries scales use <code>ticks.stepSize</code> instead of <code>time.stepSize</code>, which has been removed.</li> <li><code>maxTickslimit</code> won't be used for the ticks in <code>autoSkip</code> if the determined max ticks is less then the <code>maxTicksLimit</code>.</li> <li><code>dist/chart.js</code> has been removed.</li> <li><code>dist/chart.min.js</code> has been renamed to <code>dist/chart.umd.js</code>.</li> <li><code>dist/chart.esm.js</code> has been renamed to <code>dist/chart.js</code>.</li></ul> <h4 id="type-changes"><a href="#type-changes" class="header-anchor">#</a> Type changes</h4> <ul><li>The order of the <code>ChartMeta</code> parameters have been changed from <code><Element, DatasetElement, Type></code> to <code><Type, Element, DatasetElement></code>.</li></ul> <h3 id="general"><a href="#general" class="header-anchor">#</a> General</h3> <ul><li>Chart.js becomes an <a href="https://nodejs.org/api/esm.html" target="_blank" rel="noopener noreferrer">ESM-only package<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> (<a href="/docs/latest/getting-started/installation.html#cdn">the UMD bundle is still available</a>). To use Chart.js, your project should also be an ES module. Make sure to have this in your <code>package.json</code>:<div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"module"</span>
<span class="token punctuation">}</span>
</code></pre></div>If you are experiencing problems with <a href="https://jestjs.io" target="_blank" rel="noopener noreferrer">Jest<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>, follow its <a href="https://jestjs.io/docs/ecmascript-modules" target="_blank" rel="noopener noreferrer">documentation<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> to enable the ESM support. Or, we can recommend you migrating to <a href="https://vitest.dev/" target="_blank" rel="noopener noreferrer">Vitest<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>. Vitest has the ESM support out of the box and <a href="https://vitest.dev/guide/migration.html#migrating-from-jest" target="_blank" rel="noopener noreferrer">almost the same API as Jest<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>. See an <a href="https://github.com/reactchartjs/react-chartjs-2/commit/7f3ec96101d21e43cae8cbfe5e09a46a17cff1ef" target="_blank" rel="noopener noreferrer">example of migration<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</li> <li>Removed fallback to <code>fontColor</code> for the legend text and strikethrough color.</li> <li>Removed <code>config._chart</code> fallback for <code>this.chart</code> in the filler plugin.</li> <li>Removed <code>this._chart</code> in the filler plugin.</li></ul></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">4/15/2025, 1:19:05 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
←
<a href="/docs/latest/developers/updates.html" class="prev">
Updating Charts
</a></span> <span class="next"><a href="/docs/latest/migration/v3-migration.html">
3.x Migration Guide
</a>
→
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/docs/latest/assets/js/app.1775731d.js" defer></script><script src="/docs/latest/assets/js/2.2c2b1036.js" defer></script><script src="/docs/latest/assets/js/191.35859b30.js" defer></script>
</body>
</html>