Adding watermarks to charts
This short tutorial will explain how we can add various types of information as a watermark on charts.
In plot area of an XY chart
Section titled “In plot area of an XY chart”An XY chart has a special container called a plot area, accessible via chart.plotContainer.
We can create any type of element, as well as push it into plot container’s children.
The following code adds a text in a lower-left corner of the plot area, as well as a logo to the lower-right corner.
let copyright = chart.plotContainer.children.push(am5.Label.new(root, { text: "Copyright amCharts", x: 10, y: am5.p100, centerY: am5.p100, dy: -10}));
let logo = chart.plotContainer.children.push(am5.Picture.new(root, { src: "https://assets.codepen.io/t-160/amcharts_light.svg", width: 100, x: am5.p100, centerX: am5.p100, dx: -10, y: am5.p100, centerY: am5.p100}));var copyright = chart.plotContainer.children.push(am5.Label.new(root, { text: "Copyright amCharts", x: 10, y: am5.p100, centerY: am5.p100, dy: -10}));
var logo = chart.plotContainer.children.push(am5.Picture.new(root, { src: "https://assets.codepen.io/t-160/amcharts_light.svg", width: 100, x: am5.p100, centerX: am5.p100, dx: -10, y: am5.p100, centerY: am5.p100}));/** * --------------------------------------- * This demo was created using amCharts 5. * * For more information visit: * https://www.amcharts.com/ * * Documentation is available at: * https://www.amcharts.com/docs/v5/ * --------------------------------------- */
// Create root element// https://www.amcharts.com/docs/v5/getting-started/#Root_elementvar root = am5.Root.new("chartdiv");
// Set themes// https://www.amcharts.com/docs/v5/concepts/themes/root.setThemes([am5themes_Animated.new(root)]);
// Create chart// https://www.amcharts.com/docs/v5/charts/xy-chart/var chart = root.container.children.push( am5xy.XYChart.new(root, { panX: true, panY: true, wheelX: "panX", wheelY: "zoomX", pinchZoomX: true }));
// Add cursor// https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/var cursor = chart.set( "cursor", am5xy.XYCursor.new(root, { behavior: "none" }));
cursor.lineY.set("visible", false);
// Generate random datavar date = new Date();date.setHours(0, 0, 0, 0);var value = 100;
function generateData() { value = Math.round(Math.random() * 10 - 5 + value); am5.time.add(date, "day", 1); return { date: date.getTime(), value: value };}
function generateDatas(count) { var data = []; for (var i = 0; i < count; ++i) { data.push(generateData()); } return data;}
// Create axes// https://www.amcharts.com/docs/v5/charts/xy-chart/axes/var xAxis = chart.xAxes.push( am5xy.DateAxis.new(root, { maxDeviation: 0.2, baseInterval: { timeUnit: "day", count: 1 },
renderer: am5xy.AxisRendererX.new(root, {}), tooltip: am5.Tooltip.new(root, {}) }));
var yAxis = chart.yAxes.push( am5xy.ValueAxis.new(root, { renderer: am5xy.AxisRendererY.new(root, {}) }));
// Add series// https://www.amcharts.com/docs/v5/charts/xy-chart/series/var series = chart.series.push( am5xy.LineSeries.new(root, { name: "Series", xAxis: xAxis, yAxis: yAxis, valueYField: "value", valueXField: "date", tooltip: am5.Tooltip.new(root, { labelText: "{valueY}" }) }));
// Add scrollbar// https://www.amcharts.com/docs/v5/charts/xy-chart/scrollbars/chart.set( "scrollbarX", am5.Scrollbar.new(root, { orientation: "horizontal" }));
// Set datavar data = generateDatas(1200);series.data.setAll(data);
// Make stuff animate on load// https://www.amcharts.com/docs/v5/concepts/animations/series.appear(1000);chart.appear(1000, 100);
// Adding watermarksvar copyright = chart.plotContainer.children.push( am5.Label.new(root, { text: "Copyright amCharts", x: 10, y: am5.p100, centerY: am5.p100, dy: -10 }));
var logo = chart.plotContainer.children.push( am5.Picture.new(root, { src: "https://docs.amcharts.com/assets/amcharts_light.svg", width: 100, x: am5.p100, centerX: am5.p100, dx: -10, y: am5.p100, centerY: am5.p100 }));<div id="chartdiv"></div>body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";}
#chartdiv { width: 100%; height: 95vh;}{ "type": "XYChart", "settings": { "panX": true, "panY": true, "wheelX": "panX", "wheelY": "zoomX", "pinchZoomX": true, "cursor": { "type": "XYCursor", "settings": { "behavior": "none" }, "properties": { "lineY": { "settings": { "visible": false } } } }, "scrollbarX": { "type": "Scrollbar", "settings": { "orientation": "horizontal" } } }, "properties": { "series": [ "#series-0" ], "xAxes": [ "#axis-0" ], "yAxes": [ "#axis-1" ], "plotContainer": { "children": [ { "type": "Label", "settings": { "text": "Copyright amCharts", "x": 10, "y": { "type": "Percent", "value": 100 }, "centerY": { "type": "Percent", "value": 100 }, "dy": -10 }, "index": 5 }, { "type": "Picture", "settings": { "src": "https://docs.amcharts.com/assets/amcharts_light.svg", "width": 100, "x": { "type": "Percent", "value": 100 }, "centerX": { "type": "Percent", "value": 100 }, "dx": -10, "y": { "type": "Percent", "value": 100 }, "centerY": { "type": "Percent", "value": 100 } }, "index": 6 } ] } }, "refs": [ { "data-0": [ { "date": 1793570400000, "value": 101 }, { "date": 1793656800000, "value": 104 }, { "date": 1793743200000, "value": 104 }, { "date": 1793829600000, "value": 101 }, { "date": 1793916000000, "value": 98 }, { "date": 1794002400000, "value": 93 }, { "date": 1794088800000, "value": 94 }, { "date": 1794175200000, "value": 96 }, { "date": 1794261600000, "value": 100 }, { "date": 1794348000000, "value": 100 }, { "date": 1794434400000, "value": 97 }, { "date": 1794520800000, "value": 100 }, { "date": 1794607200000, "value": 98 }, { "date": 1794693600000, "value": 102 }, { "date": 1794780000000, "value": 101 }, { "date": 1794866400000, "value": 103 }, { "date": 1794952800000, "value": 102 }, { "date": 1795039200000, "value": 102 }, { "date": 1795125600000, "value": 97 }, { "date": 1795212000000, "value": 93 }, { "date": 1795298400000, "value": 96 }, { "date": 1795384800000, "value": 99 }, { "date": 1795471200000, "value": 103 }, { "date": 1795557600000, "value": 100 }, { "date": 1795644000000, "value": 102 }, { "date": 1795730400000, "value": 104 }, { "date": 1795816800000, "value": 103 }, { "date": 1795903200000, "value": 99 }, { "date": 1795989600000, "value": 102 }, { "date": 1796076000000, "value": 101 }, { "date": 1796162400000, "value": 96 }, { "date": 1796248800000, "value": 97 }, { "date": 1796335200000, "value": 95 }, { "date": 1796421600000, "value": 91 }, { "date": 1796508000000, "value": 90 }, { "date": 1796594400000, "value": 91 }, { "date": 1796680800000, "value": 89 }, { "date": 1796767200000, "value": 89 }, { "date": 1796853600000, "value": 88 }, { "date": 1796940000000, "value": 91 }, { "date": 1797026400000, "value": 92 }, { "date": 1797112800000, "value": 96 }, { "date": 1797199200000, "value": 94 }, { "date": 1797285600000, "value": 96 }, { "date": 1797372000000, "value": 99 }, { "date": 1797458400000, "value": 94 }, { "date": 1797544800000, "value": 98 }, { "date": 1797631200000, "value": 102 }, { "date": 1797717600000, "value": 105 }, { "date": 1797804000000, "value": 108 }, { "date": 1797890400000, "value": 111 }, { "date": 1797976800000, "value": 111 }, { "date": 1798063200000, "value": 109 }, { "date": 1798149600000, "value": 113 }, { "date": 1798236000000, "value": 109 }, { "date": 1798322400000, "value": 108 }, { "date": 1798408800000, "value": 112 }, { "date": 1798495200000, "value": 111 }, { "date": 1798581600000, "value": 114 }, { "date": 1798668000000, "value": 116 }, { "date": 1798754400000, "value": 116 }, { "date": 1798840800000, "value": 112 }, { "date": 1798927200000, "value": 116 }, { "date": 1799013600000, "value": 117 }, { "date": 1799100000000, "value": 113 }, { "date": 1799186400000, "value": 115 }, { "date": 1799272800000, "value": 112 }, { "date": 1799359200000, "value": 116 }, { "date": 1799445600000, "value": 121 }, { "date": 1799532000000, "value": 122 }, { "date": 1799618400000, "value": 124 }, { "date": 1799704800000, "value": 126 }, { "date": 1799791200000, "value": 129 }, { "date": 1799877600000, "value": 127 }, { "date": 1799964000000, "value": 127 }, { "date": 1800050400000, "value": 130 }, { "date": 1800136800000, "value": 127 }, { "date": 1800223200000, "value": 130 }, { "date": 1800309600000, "value": 131 }, { "date": 1800396000000, "value": 133 }, { "date": 1800482400000, "value": 132 }, { "date": 1800568800000, "value": 132 }, { "date": 1800655200000, "value": 135 }, { "date": 1800741600000, "value": 132 }, { "date": 1800828000000, "value": 128 }, { "date": 1800914400000, "value": 128 }, { "date": 1801000800000, "value": 128 }, { "date": 1801087200000, "value": 128 }, { "date": 1801173600000, "value": 132 }, { "date": 1801260000000, "value": 135 }, { "date": 1801346400000, "value": 130 }, { "date": 1801432800000, "value": 128 }, { "date": 1801519200000, "value": 133 }, { "date": 1801605600000, "value": 136 }, { "date": 1801692000000, "value": 133 }, { "date": 1801778400000, "value": 133 }, { "date": 1801864800000, "value": 133 }, { "date": 1801951200000, "value": 131 }, { "date": 1802037600000, "value": 135 }, { "date": 1802124000000, "value": 133 }, { "date": 1802210400000, "value": 130 }, { "date": 1802296800000, "value": 126 }, { "date": 1802383200000, "value": 129 }, { "date": 1802469600000, "value": 130 }, { "date": 1802556000000, "value": 133 }, { "date": 1802642400000, "value": 135 }, { "date": 1802728800000, "value": 131 }, { "date": 1802815200000, "value": 131 }, { "date": 1802901600000, "value": 131 }, { "date": 1802988000000, "value": 131 }, { "date": 1803074400000, "value": 135 }, { "date": 1803160800000, "value": 134 }, { "date": 1803247200000, "value": 133 }, { "date": 1803333600000, "value": 135 }, { "date": 1803420000000, "value": 133 }, { "date": 1803506400000, "value": 131 }, { "date": 1803592800000, "value": 131 }, { "date": 1803679200000, "value": 135 }, { "date": 1803765600000, "value": 136 }, { "date": 1803852000000, "value": 135 }, { "date": 1803938400000, "value": 132 }, { "date": 1804024800000, "value": 137 }, { "date": 1804111200000, "value": 137 }, { "date": 1804197600000, "value": 140 }, { "date": 1804284000000, "value": 139 }, { "date": 1804370400000, "value": 137 }, { "date": 1804456800000, "value": 140 }, { "date": 1804543200000, "value": 136 }, { "date": 1804629600000, "value": 139 }, { "date": 1804716000000, "value": 141 }, { "date": 1804802400000, "value": 141 }, { "date": 1804888800000, "value": 137 }, { "date": 1804975200000, "value": 133 }, { "date": 1805061600000, "value": 129 }, { "date": 1805148000000, "value": 128 }, { "date": 1805234400000, "value": 129 }, { "date": 1805320800000, "value": 127 }, { "date": 1805407200000, "value": 129 }, { "date": 1805493600000, "value": 128 }, { "date": 1805580000000, "value": 123 }, { "date": 1805666400000, "value": 119 }, { "date": 1805752800000, "value": 119 }, { "date": 1805839200000, "value": 120 }, { "date": 1805925600000, "value": 119 }, { "date": 1806012000000, "value": 115 }, { "date": 1806098400000, "value": 118 }, { "date": 1806184800000, "value": 114 }, { "date": 1806267600000, "value": 112 }, { "date": 1806354000000, "value": 112 }, { "date": 1806440400000, "value": 112 }, { "date": 1806526800000, "value": 113 }, { "date": 1806613200000, "value": 117 }, { "date": 1806699600000, "value": 121 }, { "date": 1806786000000, "value": 116 }, { "date": 1806872400000, "value": 116 }, { "date": 1806958800000, "value": 118 }, { "date": 1807045200000, "value": 120 }, { "date": 1807131600000, "value": 118 }, { "date": 1807218000000, "value": 122 }, { "date": 1807304400000, "value": 119 }, { "date": 1807390800000, "value": 115 }, { "date": 1807477200000, "value": 110 }, { "date": 1807563600000, "value": 113 }, { "date": 1807650000000, "value": 114 }, { "date": 1807736400000, "value": 110 }, { "date": 1807822800000, "value": 114 }, { "date": 1807909200000, "value": 111 }, { "date": 1807995600000, "value": 113 }, { "date": 1808082000000, "value": 111 }, { "date": 1808168400000, "value": 107 }, { "date": 1808254800000, "value": 103 }, { "date": 1808341200000, "value": 99 }, { "date": 1808427600000, "value": 97 }, { "date": 1808514000000, "value": 98 }, { "date": 1808600400000, "value": 99 }, { "date": 1808686800000, "value": 101 }, { "date": 1808773200000, "value": 104 }, { "date": 1808859600000, "value": 100 }, { "date": 1808946000000, "value": 95 }, { "date": 1809032400000, "value": 94 }, { "date": 1809118800000, "value": 93 }, { "date": 1809205200000, "value": 93 }, { "date": 1809291600000, "value": 95 }, { "date": 1809378000000, "value": 99 }, { "date": 1809464400000, "value": 100 }, { "date": 1809550800000, "value": 104 }, { "date": 1809637200000, "value": 108 }, { "date": 1809723600000, "value": 104 }, { "date": 1809810000000, "value": 100 }, { "date": 1809896400000, "value": 99 }, { "date": 1809982800000, "value": 94 }, { "date": 1810069200000, "value": 92 }, { "date": 1810155600000, "value": 92 }, { "date": 1810242000000, "value": 96 }, { "date": 1810328400000, "value": 92 }, { "date": 1810414800000, "value": 91 }, { "date": 1810501200000, "value": 94 }, { "date": 1810587600000, "value": 92 }, { "date": 1810674000000, "value": 92 }, { "date": 1810760400000, "value": 91 }, { "date": 1810846800000, "value": 89 }, { "date": 1810933200000, "value": 92 }, { "date": 1811019600000, "value": 88 }, { "date": 1811106000000, "value": 88 }, { "date": 1811192400000, "value": 87 }, { "date": 1811278800000, "value": 83 }, { "date": 1811365200000, "value": 79 }, { "date": 1811451600000, "value": 75 }, { "date": 1811538000000, "value": 77 }, { "date": 1811624400000, "value": 81 }, { "date": 1811710800000, "value": 84 }, { "date": 1811797200000, "value": 80 }, { "date": 1811883600000, "value": 82 }, { "date": 1811970000000, "value": 84 }, { "date": 1812056400000, "value": 84 }, { "date": 1812142800000, "value": 84 }, { "date": 1812229200000, "value": 82 }, { "date": 1812315600000, "value": 78 }, { "date": 1812402000000, "value": 79 }, { "date": 1812488400000, "value": 79 }, { "date": 1812574800000, "value": 76 }, { "date": 1812661200000, "value": 77 }, { "date": 1812747600000, "value": 78 }, { "date": 1812834000000, "value": 76 }, { "date": 1812920400000, "value": 76 }, { "date": 1813006800000, "value": 79 }, { "date": 1813093200000, "value": 76 }, { "date": 1813179600000, "value": 74 }, { "date": 1813266000000, "value": 70 }, { "date": 1813352400000, "value": 67 }, { "date": 1813438800000, "value": 70 }, { "date": 1813525200000, "value": 75 }, { "date": 1813611600000, "value": 79 }, { "date": 1813698000000, "value": 77 }, { "date": 1813784400000, "value": 82 }, { "date": 1813870800000, "value": 86 }, { "date": 1813957200000, "value": 87 }, { "date": 1814043600000, "value": 92 }, { "date": 1814130000000, "value": 93 }, { "date": 1814216400000, "value": 92 }, { "date": 1814302800000, "value": 95 }, { "date": 1814389200000, "value": 96 }, { "date": 1814475600000, "value": 93 }, { "date": 1814562000000, "value": 94 }, { "date": 1814648400000, "value": 91 }, { "date": 1814734800000, "value": 89 }, { "date": 1814821200000, "value": 89 }, { "date": 1814907600000, "value": 88 }, { "date": 1814994000000, "value": 92 }, { "date": 1815080400000, "value": 95 }, { "date": 1815166800000, "value": 98 }, { "date": 1815253200000, "value": 101 }, { "date": 1815339600000, "value": 104 }, { "date": 1815426000000, "value": 109 }, { "date": 1815512400000, "value": 104 }, { "date": 1815598800000, "value": 107 }, { "date": 1815685200000, "value": 110 }, { "date": 1815771600000, "value": 112 }, { "date": 1815858000000, "value": 108 }, { "date": 1815944400000, "value": 104 }, { "date": 1816030800000, "value": 105 }, { "date": 1816117200000, "value": 107 }, { "date": 1816203600000, "value": 109 }, { "date": 1816290000000, "value": 105 }, { "date": 1816376400000, "value": 108 }, { "date": 1816462800000, "value": 106 }, { "date": 1816549200000, "value": 109 }, { "date": 1816635600000, "value": 109 }, { "date": 1816722000000, "value": 105 }, { "date": 1816808400000, "value": 101 }, { "date": 1816894800000, "value": 102 }, { "date": 1816981200000, "value": 105 }, { "date": 1817067600000, "value": 101 }, { "date": 1817154000000, "value": 103 }, { "date": 1817240400000, "value": 105 }, { "date": 1817326800000, "value": 103 }, { "date": 1817413200000, "value": 104 }, { "date": 1817499600000, "value": 106 }, { "date": 1817586000000, "value": 110 }, { "date": 1817672400000, "value": 112 }, { "date": 1817758800000, "value": 115 }, { "date": 1817845200000, "value": 119 }, { "date": 1817931600000, "value": 117 }, { "date": 1818018000000, "value": 118 }, { "date": 1818104400000, "value": 121 }, { "date": 1818190800000, "value": 118 }, { "date": 1818277200000, "value": 116 }, { "date": 1818363600000, "value": 114 }, { "date": 1818450000000, "value": 118 }, { "date": 1818536400000, "value": 122 }, { "date": 1818622800000, "value": 123 }, { "date": 1818709200000, "value": 125 }, { "date": 1818795600000, "value": 123 }, { "date": 1818882000000, "value": 119 }, { "date": 1818968400000, "value": 120 }, { "date": 1819054800000, "value": 120 }, { "date": 1819141200000, "value": 117 }, { "date": 1819227600000, "value": 113 }, { "date": 1819314000000, "value": 116 }, { "date": 1819400400000, "value": 115 }, { "date": 1819486800000, "value": 118 }, { "date": 1819573200000, "value": 119 }, { "date": 1819659600000, "value": 116 }, { "date": 1819746000000, "value": 113 }, { "date": 1819832400000, "value": 117 }, { "date": 1819918800000, "value": 118 }, { "date": 1820005200000, "value": 116 }, { "date": 1820091600000, "value": 112 }, { "date": 1820178000000, "value": 113 }, { "date": 1820264400000, "value": 108 }, { "date": 1820350800000, "value": 105 }, { "date": 1820437200000, "value": 103 }, { "date": 1820523600000, "value": 101 }, { "date": 1820610000000, "value": 97 }, { "date": 1820696400000, "value": 100 }, { "date": 1820782800000, "value": 99 }, { "date": 1820869200000, "value": 97 }, { "date": 1820955600000, "value": 98 }, { "date": 1821042000000, "value": 94 }, { "date": 1821128400000, "value": 93 }, { "date": 1821214800000, "value": 89 }, { "date": 1821301200000, "value": 89 }, { "date": 1821387600000, "value": 93 }, { "date": 1821474000000, "value": 88 }, { "date": 1821560400000, "value": 89 }, { "date": 1821646800000, "value": 88 }, { "date": 1821733200000, "value": 91 }, { "date": 1821819600000, "value": 92 }, { "date": 1821906000000, "value": 96 }, { "date": 1821992400000, "value": 95 }, { "date": 1822078800000, "value": 95 }, { "date": 1822165200000, "value": 94 }, { "date": 1822251600000, "value": 98 }, { "date": 1822338000000, "value": 97 }, { "date": 1822424400000, "value": 97 }, { "date": 1822510800000, "value": 97 }, { "date": 1822597200000, "value": 99 }, { "date": 1822683600000, "value": 102 }, { "date": 1822770000000, "value": 100 }, { "date": 1822856400000, "value": 95 }, { "date": 1822942800000, "value": 100 }, { "date": 1823029200000, "value": 101 }, { "date": 1823115600000, "value": 105 }, { "date": 1823202000000, "value": 102 }, { "date": 1823288400000, "value": 106 }, { "date": 1823374800000, "value": 107 }, { "date": 1823461200000, "value": 110 }, { "date": 1823547600000, "value": 110 }, { "date": 1823634000000, "value": 112 }, { "date": 1823720400000, "value": 116 }, { "date": 1823806800000, "value": 112 }, { "date": 1823893200000, "value": 113 }, { "date": 1823979600000, "value": 109 }, { "date": 1824066000000, "value": 109 }, { "date": 1824152400000, "value": 109 }, { "date": 1824238800000, "value": 109 }, { "date": 1824325200000, "value": 112 }, { "date": 1824411600000, "value": 111 }, { "date": 1824498000000, "value": 106 }, { "date": 1824584400000, "value": 109 }, { "date": 1824670800000, "value": 104 }, { "date": 1824757200000, "value": 106 }, { "date": 1824843600000, "value": 104 }, { "date": 1824930000000, "value": 101 }, { "date": 1825020000000, "value": 101 }, { "date": 1825106400000, "value": 100 }, { "date": 1825192800000, "value": 97 }, { "date": 1825279200000, "value": 95 }, { "date": 1825365600000, "value": 92 }, { "date": 1825452000000, "value": 93 }, { "date": 1825538400000, "value": 92 }, { "date": 1825624800000, "value": 94 }, { "date": 1825711200000, "value": 93 }, { "date": 1825797600000, "value": 95 }, { "date": 1825884000000, "value": 93 }, { "date": 1825970400000, "value": 93 }, { "date": 1826056800000, "value": 92 }, { "date": 1826143200000, "value": 95 }, { "date": 1826229600000, "value": 99 }, { "date": 1826316000000, "value": 96 }, { "date": 1826402400000, "value": 96 }, { "date": 1826488800000, "value": 97 }, { "date": 1826575200000, "value": 102 }, { "date": 1826661600000, "value": 100 }, { "date": 1826748000000, "value": 102 }, { "date": 1826834400000, "value": 105 }, { "date": 1826920800000, "value": 105 }, { "date": 1827007200000, "value": 108 }, { "date": 1827093600000, "value": 110 }, { "date": 1827180000000, "value": 108 }, { "date": 1827266400000, "value": 105 }, { "date": 1827352800000, "value": 100 }, { "date": 1827439200000, "value": 103 }, { "date": 1827525600000, "value": 101 }, { "date": 1827612000000, "value": 101 }, { "date": 1827698400000, "value": 97 }, { "date": 1827784800000, "value": 95 }, { "date": 1827871200000, "value": 98 }, { "date": 1827957600000, "value": 101 }, { "date": 1828044000000, "value": 98 }, { "date": 1828130400000, "value": 93 }, { "date": 1828216800000, "value": 95 }, { "date": 1828303200000, "value": 98 }, { "date": 1828389600000, "value": 99 }, { "date": 1828476000000, "value": 104 }, { "date": 1828562400000, "value": 107 }, { "date": 1828648800000, "value": 105 }, { "date": 1828735200000, "value": 106 }, { "date": 1828821600000, "value": 105 }, { "date": 1828908000000, "value": 106 }, { "date": 1828994400000, "value": 102 }, { "date": 1829080800000, "value": 105 }, { "date": 1829167200000, "value": 105 }, { "date": 1829253600000, "value": 101 }, { "date": 1829340000000, "value": 100 }, { "date": 1829426400000, "value": 99 }, { "date": 1829512800000, "value": 98 }, { "date": 1829599200000, "value": 99 }, { "date": 1829685600000, "value": 95 }, { "date": 1829772000000, "value": 90 }, { "date": 1829858400000, "value": 88 }, { "date": 1829944800000, "value": 85 }, { "date": 1830031200000, "value": 83 }, { "date": 1830117600000, "value": 83 }, { "date": 1830204000000, "value": 83 }, { "date": 1830290400000, "value": 84 }, { "date": 1830376800000, "value": 86 }, { "date": 1830463200000, "value": 88 }, { "date": 1830549600000, "value": 87 }, { "date": 1830636000000, "value": 85 }, { "date": 1830722400000, "value": 81 }, { "date": 1830808800000, "value": 82 }, { "date": 1830895200000, "value": 81 }, { "date": 1830981600000, "value": 85 }, { "date": 1831068000000, "value": 83 }, { "date": 1831154400000, "value": 88 }, { "date": 1831240800000, "value": 88 }, { "date": 1831327200000, "value": 87 }, { "date": 1831413600000, "value": 92 }, { "date": 1831500000000, "value": 93 }, { "date": 1831586400000, "value": 92 }, { "date": 1831672800000, "value": 94 }, { "date": 1831759200000, "value": 90 }, { "date": 1831845600000, "value": 88 }, { "date": 1831932000000, "value": 84 }, { "date": 1832018400000, "value": 79 }, { "date": 1832104800000, "value": 76 }, { "date": 1832191200000, "value": 73 }, { "date": 1832277600000, "value": 72 }, { "date": 1832364000000, "value": 68 }, { "date": 1832450400000, "value": 64 }, { "date": 1832536800000, "value": 67 }, { "date": 1832623200000, "value": 71 }, { "date": 1832709600000, "value": 72 }, { "date": 1832796000000, "value": 73 }, { "date": 1832882400000, "value": 74 }, { "date": 1832968800000, "value": 79 }, { "date": 1833055200000, "value": 81 }, { "date": 1833141600000, "value": 84 }, { "date": 1833228000000, "value": 83 }, { "date": 1833314400000, "value": 85 }, { "date": 1833400800000, "value": 86 }, { "date": 1833487200000, "value": 88 }, { "date": 1833573600000, "value": 83 }, { "date": 1833660000000, "value": 86 }, { "date": 1833746400000, "value": 89 }, { "date": 1833832800000, "value": 93 }, { "date": 1833919200000, "value": 92 }, { "date": 1834005600000, "value": 93 }, { "date": 1834092000000, "value": 94 }, { "date": 1834178400000, "value": 95 }, { "date": 1834264800000, "value": 96 }, { "date": 1834351200000, "value": 98 }, { "date": 1834437600000, "value": 102 }, { "date": 1834524000000, "value": 99 }, { "date": 1834610400000, "value": 100 }, { "date": 1834696800000, "value": 98 }, { "date": 1834783200000, "value": 94 }, { "date": 1834869600000, "value": 95 }, { "date": 1834956000000, "value": 92 }, { "date": 1835042400000, "value": 92 }, { "date": 1835128800000, "value": 97 }, { "date": 1835215200000, "value": 102 }, { "date": 1835301600000, "value": 104 }, { "date": 1835388000000, "value": 109 }, { "date": 1835474400000, "value": 109 }, { "date": 1835560800000, "value": 106 }, { "date": 1835647200000, "value": 102 }, { "date": 1835733600000, "value": 107 }, { "date": 1835820000000, "value": 112 }, { "date": 1835906400000, "value": 116 }, { "date": 1835992800000, "value": 113 }, { "date": 1836079200000, "value": 110 }, { "date": 1836165600000, "value": 106 }, { "date": 1836252000000, "value": 109 }, { "date": 1836338400000, "value": 106 }, { "date": 1836424800000, "value": 109 }, { "date": 1836511200000, "value": 107 }, { "date": 1836597600000, "value": 103 }, { "date": 1836684000000, "value": 100 }, { "date": 1836770400000, "value": 95 }, { "date": 1836856800000, "value": 91 }, { "date": 1836943200000, "value": 89 }, { "date": 1837029600000, "value": 89 }, { "date": 1837116000000, "value": 86 }, { "date": 1837202400000, "value": 87 }, { "date": 1837288800000, "value": 86 }, { "date": 1837375200000, "value": 89 }, { "date": 1837461600000, "value": 84 }, { "date": 1837548000000, "value": 85 }, { "date": 1837634400000, "value": 84 }, { "date": 1837717200000, "value": 84 }, { "date": 1837803600000, "value": 86 }, { "date": 1837890000000, "value": 91 }, { "date": 1837976400000, "value": 95 }, { "date": 1838062800000, "value": 96 }, { "date": 1838149200000, "value": 99 }, { "date": 1838235600000, "value": 101 }, { "date": 1838322000000, "value": 100 }, { "date": 1838408400000, "value": 102 }, { "date": 1838494800000, "value": 105 }, { "date": 1838581200000, "value": 104 }, { "date": 1838667600000, "value": 103 }, { "date": 1838754000000, "value": 105 }, { "date": 1838840400000, "value": 105 }, { "date": 1838926800000, "value": 102 }, { "date": 1839013200000, "value": 103 }, { "date": 1839099600000, "value": 105 }, { "date": 1839186000000, "value": 106 }, { "date": 1839272400000, "value": 104 }, { "date": 1839358800000, "value": 107 }, { "date": 1839445200000, "value": 105 }, { "date": 1839531600000, "value": 100 }, { "date": 1839618000000, "value": 102 }, { "date": 1839704400000, "value": 102 }, { "date": 1839790800000, "value": 102 }, { "date": 1839877200000, "value": 97 }, { "date": 1839963600000, "value": 92 }, { "date": 1840050000000, "value": 96 }, { "date": 1840136400000, "value": 95 }, { "date": 1840222800000, "value": 98 }, { "date": 1840309200000, "value": 101 }, { "date": 1840395600000, "value": 97 }, { "date": 1840482000000, "value": 101 }, { "date": 1840568400000, "value": 100 }, { "date": 1840654800000, "value": 95 }, { "date": 1840741200000, "value": 90 }, { "date": 1840827600000, "value": 92 }, { "date": 1840914000000, "value": 93 }, { "date": 1841000400000, "value": 93 }, { "date": 1841086800000, "value": 93 }, { "date": 1841173200000, "value": 90 }, { "date": 1841259600000, "value": 93 }, { "date": 1841346000000, "value": 95 }, { "date": 1841432400000, "value": 90 }, { "date": 1841518800000, "value": 89 }, { "date": 1841605200000, "value": 87 }, { "date": 1841691600000, "value": 85 }, { "date": 1841778000000, "value": 84 }, { "date": 1841864400000, "value": 79 }, { "date": 1841950800000, "value": 82 }, { "date": 1842037200000, "value": 87 }, { "date": 1842123600000, "value": 83 }, { "date": 1842210000000, "value": 78 }, { "date": 1842296400000, "value": 78 }, { "date": 1842382800000, "value": 80 }, { "date": 1842469200000, "value": 80 }, { "date": 1842555600000, "value": 80 }, { "date": 1842642000000, "value": 84 }, { "date": 1842728400000, "value": 85 }, { "date": 1842814800000, "value": 80 }, { "date": 1842901200000, "value": 81 }, { "date": 1842987600000, "value": 84 }, { "date": 1843074000000, "value": 89 }, { "date": 1843160400000, "value": 90 }, { "date": 1843246800000, "value": 90 }, { "date": 1843333200000, "value": 86 }, { "date": 1843419600000, "value": 90 }, { "date": 1843506000000, "value": 94 }, { "date": 1843592400000, "value": 95 }, { "date": 1843678800000, "value": 92 }, { "date": 1843765200000, "value": 93 }, { "date": 1843851600000, "value": 88 }, { "date": 1843938000000, "value": 89 }, { "date": 1844024400000, "value": 91 }, { "date": 1844110800000, "value": 91 }, { "date": 1844197200000, "value": 87 }, { "date": 1844283600000, "value": 87 }, { "date": 1844370000000, "value": 85 }, { "date": 1844456400000, "value": 83 }, { "date": 1844542800000, "value": 80 }, { "date": 1844629200000, "value": 81 }, { "date": 1844715600000, "value": 85 }, { "date": 1844802000000, "value": 83 }, { "date": 1844888400000, "value": 87 }, { "date": 1844974800000, "value": 87 }, { "date": 1845061200000, "value": 83 }, { "date": 1845147600000, "value": 83 }, { "date": 1845234000000, "value": 81 }, { "date": 1845320400000, "value": 82 }, { "date": 1845406800000, "value": 77 }, { "date": 1845493200000, "value": 77 }, { "date": 1845579600000, "value": 81 }, { "date": 1845666000000, "value": 81 }, { "date": 1845752400000, "value": 83 }, { "date": 1845838800000, "value": 83 }, { "date": 1845925200000, "value": 86 }, { "date": 1846011600000, "value": 88 }, { "date": 1846098000000, "value": 89 }, { "date": 1846184400000, "value": 88 }, { "date": 1846270800000, "value": 91 }, { "date": 1846357200000, "value": 89 }, { "date": 1846443600000, "value": 92 }, { "date": 1846530000000, "value": 87 }, { "date": 1846616400000, "value": 88 }, { "date": 1846702800000, "value": 85 }, { "date": 1846789200000, "value": 87 }, { "date": 1846875600000, "value": 84 }, { "date": 1846962000000, "value": 82 }, { "date": 1847048400000, "value": 81 }, { "date": 1847134800000, "value": 78 }, { "date": 1847221200000, "value": 76 }, { "date": 1847307600000, "value": 74 }, { "date": 1847394000000, "value": 73 }, { "date": 1847480400000, "value": 76 }, { "date": 1847566800000, "value": 78 }, { "date": 1847653200000, "value": 82 }, { "date": 1847739600000, "value": 87 }, { "date": 1847826000000, "value": 83 }, { "date": 1847912400000, "value": 87 }, { "date": 1847998800000, "value": 82 }, { "date": 1848085200000, "value": 81 }, { "date": 1848171600000, "value": 81 }, { "date": 1848258000000, "value": 85 }, { "date": 1848344400000, "value": 90 }, { "date": 1848430800000, "value": 93 }, { "date": 1848517200000, "value": 93 }, { "date": 1848603600000, "value": 96 }, { "date": 1848690000000, "value": 94 }, { "date": 1848776400000, "value": 97 }, { "date": 1848862800000, "value": 96 }, { "date": 1848949200000, "value": 96 }, { "date": 1849035600000, "value": 96 }, { "date": 1849122000000, "value": 92 }, { "date": 1849208400000, "value": 89 }, { "date": 1849294800000, "value": 91 }, { "date": 1849381200000, "value": 90 }, { "date": 1849467600000, "value": 88 }, { "date": 1849554000000, "value": 90 }, { "date": 1849640400000, "value": 90 }, { "date": 1849726800000, "value": 88 }, { "date": 1849813200000, "value": 83 }, { "date": 1849899600000, "value": 80 }, { "date": 1849986000000, "value": 76 }, { "date": 1850072400000, "value": 77 }, { "date": 1850158800000, "value": 81 }, { "date": 1850245200000, "value": 81 }, { "date": 1850331600000, "value": 83 }, { "date": 1850418000000, "value": 84 }, { "date": 1850504400000, "value": 82 }, { "date": 1850590800000, "value": 78 }, { "date": 1850677200000, "value": 79 }, { "date": 1850763600000, "value": 78 }, { "date": 1850850000000, "value": 74 }, { "date": 1850936400000, "value": 75 }, { "date": 1851022800000, "value": 70 }, { "date": 1851109200000, "value": 66 }, { "date": 1851195600000, "value": 63 }, { "date": 1851282000000, "value": 65 }, { "date": 1851368400000, "value": 65 }, { "date": 1851454800000, "value": 64 }, { "date": 1851541200000, "value": 62 }, { "date": 1851627600000, "value": 63 }, { "date": 1851714000000, "value": 68 }, { "date": 1851800400000, "value": 72 }, { "date": 1851886800000, "value": 68 }, { "date": 1851973200000, "value": 69 }, { "date": 1852059600000, "value": 72 }, { "date": 1852146000000, "value": 76 }, { "date": 1852232400000, "value": 79 }, { "date": 1852318800000, "value": 82 }, { "date": 1852405200000, "value": 84 }, { "date": 1852491600000, "value": 87 }, { "date": 1852578000000, "value": 86 }, { "date": 1852664400000, "value": 90 }, { "date": 1852750800000, "value": 90 }, { "date": 1852837200000, "value": 93 }, { "date": 1852923600000, "value": 93 }, { "date": 1853010000000, "value": 91 }, { "date": 1853096400000, "value": 86 }, { "date": 1853182800000, "value": 85 }, { "date": 1853269200000, "value": 90 }, { "date": 1853355600000, "value": 90 }, { "date": 1853442000000, "value": 89 }, { "date": 1853528400000, "value": 86 }, { "date": 1853614800000, "value": 85 }, { "date": 1853701200000, "value": 84 }, { "date": 1853787600000, "value": 84 }, { "date": 1853874000000, "value": 86 }, { "date": 1853960400000, "value": 83 }, { "date": 1854046800000, "value": 83 }, { "date": 1854133200000, "value": 80 }, { "date": 1854219600000, "value": 83 }, { "date": 1854306000000, "value": 80 }, { "date": 1854392400000, "value": 77 }, { "date": 1854478800000, "value": 77 }, { "date": 1854565200000, "value": 81 }, { "date": 1854651600000, "value": 78 }, { "date": 1854738000000, "value": 81 }, { "date": 1854824400000, "value": 81 }, { "date": 1854910800000, "value": 84 }, { "date": 1854997200000, "value": 86 }, { "date": 1855083600000, "value": 85 }, { "date": 1855170000000, "value": 88 }, { "date": 1855256400000, "value": 87 }, { "date": 1855342800000, "value": 88 }, { "date": 1855429200000, "value": 89 }, { "date": 1855515600000, "value": 86 }, { "date": 1855602000000, "value": 86 }, { "date": 1855688400000, "value": 89 }, { "date": 1855774800000, "value": 92 }, { "date": 1855861200000, "value": 89 }, { "date": 1855947600000, "value": 90 }, { "date": 1856034000000, "value": 87 }, { "date": 1856120400000, "value": 90 }, { "date": 1856206800000, "value": 90 }, { "date": 1856293200000, "value": 95 }, { "date": 1856379600000, "value": 95 }, { "date": 1856469600000, "value": 99 }, { "date": 1856556000000, "value": 98 }, { "date": 1856642400000, "value": 101 }, { "date": 1856728800000, "value": 103 }, { "date": 1856815200000, "value": 103 }, { "date": 1856901600000, "value": 102 }, { "date": 1856988000000, "value": 106 }, { "date": 1857074400000, "value": 110 }, { "date": 1857160800000, "value": 106 }, { "date": 1857247200000, "value": 104 }, { "date": 1857333600000, "value": 104 }, { "date": 1857420000000, "value": 107 }, { "date": 1857506400000, "value": 107 }, { "date": 1857592800000, "value": 105 }, { "date": 1857679200000, "value": 106 }, { "date": 1857765600000, "value": 103 }, { "date": 1857852000000, "value": 107 }, { "date": 1857938400000, "value": 112 }, { "date": 1858024800000, "value": 114 }, { "date": 1858111200000, "value": 113 }, { "date": 1858197600000, "value": 111 }, { "date": 1858284000000, "value": 112 }, { "date": 1858370400000, "value": 112 }, { "date": 1858456800000, "value": 111 }, { "date": 1858543200000, "value": 110 }, { "date": 1858629600000, "value": 108 }, { "date": 1858716000000, "value": 109 }, { "date": 1858802400000, "value": 105 }, { "date": 1858888800000, "value": 104 }, { "date": 1858975200000, "value": 102 }, { "date": 1859061600000, "value": 97 }, { "date": 1859148000000, "value": 98 }, { "date": 1859234400000, "value": 100 }, { "date": 1859320800000, "value": 102 }, { "date": 1859407200000, "value": 99 }, { "date": 1859493600000, "value": 96 }, { "date": 1859580000000, "value": 91 }, { "date": 1859666400000, "value": 87 }, { "date": 1859752800000, "value": 91 }, { "date": 1859839200000, "value": 91 }, { "date": 1859925600000, "value": 87 }, { "date": 1860012000000, "value": 86 }, { "date": 1860098400000, "value": 90 }, { "date": 1860184800000, "value": 86 }, { "date": 1860271200000, "value": 90 }, { "date": 1860357600000, "value": 92 }, { "date": 1860444000000, "value": 88 }, { "date": 1860530400000, "value": 88 }, { "date": 1860616800000, "value": 85 }, { "date": 1860703200000, "value": 81 }, { "date": 1860789600000, "value": 82 }, { "date": 1860876000000, "value": 84 }, { "date": 1860962400000, "value": 86 }, { "date": 1861048800000, "value": 90 }, { "date": 1861135200000, "value": 91 }, { "date": 1861221600000, "value": 95 }, { "date": 1861308000000, "value": 94 }, { "date": 1861394400000, "value": 91 }, { "date": 1861480800000, "value": 95 }, { "date": 1861567200000, "value": 94 }, { "date": 1861653600000, "value": 93 }, { "date": 1861740000000, "value": 91 }, { "date": 1861826400000, "value": 90 }, { "date": 1861912800000, "value": 91 }, { "date": 1861999200000, "value": 92 }, { "date": 1862085600000, "value": 93 }, { "date": 1862172000000, "value": 88 }, { "date": 1862258400000, "value": 90 }, { "date": 1862344800000, "value": 92 }, { "date": 1862431200000, "value": 92 }, { "date": 1862517600000, "value": 90 }, { "date": 1862604000000, "value": 93 }, { "date": 1862690400000, "value": 98 }, { "date": 1862776800000, "value": 102 }, { "date": 1862863200000, "value": 106 }, { "date": 1862949600000, "value": 105 }, { "date": 1863036000000, "value": 103 }, { "date": 1863122400000, "value": 106 }, { "date": 1863208800000, "value": 107 }, { "date": 1863295200000, "value": 109 }, { "date": 1863381600000, "value": 108 }, { "date": 1863468000000, "value": 112 }, { "date": 1863554400000, "value": 112 }, { "date": 1863640800000, "value": 108 }, { "date": 1863727200000, "value": 109 }, { "date": 1863813600000, "value": 106 }, { "date": 1863900000000, "value": 108 }, { "date": 1863986400000, "value": 105 }, { "date": 1864072800000, "value": 105 }, { "date": 1864159200000, "value": 100 }, { "date": 1864245600000, "value": 96 }, { "date": 1864332000000, "value": 93 }, { "date": 1864418400000, "value": 91 }, { "date": 1864504800000, "value": 89 }, { "date": 1864591200000, "value": 88 }, { "date": 1864677600000, "value": 89 }, { "date": 1864764000000, "value": 88 }, { "date": 1864850400000, "value": 89 }, { "date": 1864936800000, "value": 89 }, { "date": 1865023200000, "value": 90 }, { "date": 1865109600000, "value": 90 }, { "date": 1865196000000, "value": 95 }, { "date": 1865282400000, "value": 98 }, { "date": 1865368800000, "value": 97 }, { "date": 1865455200000, "value": 92 }, { "date": 1865541600000, "value": 93 }, { "date": 1865628000000, "value": 97 }, { "date": 1865714400000, "value": 100 }, { "date": 1865800800000, "value": 96 }, { "date": 1865887200000, "value": 92 }, { "date": 1865973600000, "value": 97 }, { "date": 1866060000000, "value": 96 }, { "date": 1866146400000, "value": 95 }, { "date": 1866232800000, "value": 94 }, { "date": 1866319200000, "value": 90 }, { "date": 1866405600000, "value": 94 }, { "date": 1866492000000, "value": 97 }, { "date": 1866578400000, "value": 100 }, { "date": 1866664800000, "value": 98 }, { "date": 1866751200000, "value": 99 }, { "date": 1866837600000, "value": 96 }, { "date": 1866924000000, "value": 93 }, { "date": 1867010400000, "value": 97 }, { "date": 1867096800000, "value": 98 }, { "date": 1867183200000, "value": 102 }, { "date": 1867269600000, "value": 98 }, { "date": 1867356000000, "value": 98 }, { "date": 1867442400000, "value": 100 }, { "date": 1867528800000, "value": 96 }, { "date": 1867615200000, "value": 100 }, { "date": 1867701600000, "value": 99 }, { "date": 1867788000000, "value": 102 }, { "date": 1867874400000, "value": 104 }, { "date": 1867960800000, "value": 104 }, { "date": 1868047200000, "value": 104 }, { "date": 1868133600000, "value": 106 }, { "date": 1868220000000, "value": 102 }, { "date": 1868306400000, "value": 99 }, { "date": 1868392800000, "value": 102 }, { "date": 1868479200000, "value": 97 }, { "date": 1868565600000, "value": 95 }, { "date": 1868652000000, "value": 90 }, { "date": 1868738400000, "value": 85 }, { "date": 1868824800000, "value": 86 }, { "date": 1868911200000, "value": 84 }, { "date": 1868997600000, "value": 80 }, { "date": 1869084000000, "value": 78 }, { "date": 1869166800000, "value": 75 }, { "date": 1869253200000, "value": 73 }, { "date": 1869339600000, "value": 74 }, { "date": 1869426000000, "value": 70 }, { "date": 1869512400000, "value": 72 }, { "date": 1869598800000, "value": 76 }, { "date": 1869685200000, "value": 79 }, { "date": 1869771600000, "value": 75 }, { "date": 1869858000000, "value": 73 }, { "date": 1869944400000, "value": 77 }, { "date": 1870030800000, "value": 82 }, { "date": 1870117200000, "value": 86 }, { "date": 1870203600000, "value": 87 }, { "date": 1870290000000, "value": 88 }, { "date": 1870376400000, "value": 89 }, { "date": 1870462800000, "value": 94 }, { "date": 1870549200000, "value": 92 }, { "date": 1870635600000, "value": 88 }, { "date": 1870722000000, "value": 88 }, { "date": 1870808400000, "value": 92 }, { "date": 1870894800000, "value": 88 }, { "date": 1870981200000, "value": 92 }, { "date": 1871067600000, "value": 90 }, { "date": 1871154000000, "value": 91 }, { "date": 1871240400000, "value": 93 }, { "date": 1871326800000, "value": 97 }, { "date": 1871413200000, "value": 100 }, { "date": 1871499600000, "value": 100 }, { "date": 1871586000000, "value": 100 }, { "date": 1871672400000, "value": 98 }, { "date": 1871758800000, "value": 103 }, { "date": 1871845200000, "value": 100 }, { "date": 1871931600000, "value": 103 }, { "date": 1872018000000, "value": 106 }, { "date": 1872104400000, "value": 105 }, { "date": 1872190800000, "value": 100 }, { "date": 1872277200000, "value": 98 }, { "date": 1872363600000, "value": 96 }, { "date": 1872450000000, "value": 95 }, { "date": 1872536400000, "value": 91 }, { "date": 1872622800000, "value": 88 }, { "date": 1872709200000, "value": 85 }, { "date": 1872795600000, "value": 84 }, { "date": 1872882000000, "value": 82 }, { "date": 1872968400000, "value": 86 }, { "date": 1873054800000, "value": 91 }, { "date": 1873141200000, "value": 93 }, { "date": 1873227600000, "value": 92 }, { "date": 1873314000000, "value": 92 }, { "date": 1873400400000, "value": 95 }, { "date": 1873486800000, "value": 98 }, { "date": 1873573200000, "value": 101 }, { "date": 1873659600000, "value": 104 }, { "date": 1873746000000, "value": 105 }, { "date": 1873832400000, "value": 108 }, { "date": 1873918800000, "value": 111 }, { "date": 1874005200000, "value": 107 }, { "date": 1874091600000, "value": 102 }, { "date": 1874178000000, "value": 102 }, { "date": 1874264400000, "value": 105 }, { "date": 1874350800000, "value": 101 }, { "date": 1874437200000, "value": 96 }, { "date": 1874523600000, "value": 97 }, { "date": 1874610000000, "value": 100 }, { "date": 1874696400000, "value": 97 }, { "date": 1874782800000, "value": 94 }, { "date": 1874869200000, "value": 95 }, { "date": 1874955600000, "value": 94 }, { "date": 1875042000000, "value": 94 }, { "date": 1875128400000, "value": 91 }, { "date": 1875214800000, "value": 91 }, { "date": 1875301200000, "value": 95 }, { "date": 1875387600000, "value": 94 }, { "date": 1875474000000, "value": 94 }, { "date": 1875560400000, "value": 92 }, { "date": 1875646800000, "value": 92 }, { "date": 1875733200000, "value": 96 }, { "date": 1875819600000, "value": 95 }, { "date": 1875906000000, "value": 99 }, { "date": 1875992400000, "value": 97 }, { "date": 1876078800000, "value": 100 }, { "date": 1876165200000, "value": 96 }, { "date": 1876251600000, "value": 97 }, { "date": 1876338000000, "value": 102 }, { "date": 1876424400000, "value": 107 }, { "date": 1876510800000, "value": 106 }, { "date": 1876597200000, "value": 108 }, { "date": 1876683600000, "value": 106 }, { "date": 1876770000000, "value": 106 }, { "date": 1876856400000, "value": 104 }, { "date": 1876942800000, "value": 104 }, { "date": 1877029200000, "value": 101 }, { "date": 1877115600000, "value": 103 }, { "date": 1877202000000, "value": 101 }, { "date": 1877288400000, "value": 103 }, { "date": 1877374800000, "value": 99 }, { "date": 1877461200000, "value": 95 }, { "date": 1877547600000, "value": 100 }, { "date": 1877634000000, "value": 99 }, { "date": 1877720400000, "value": 98 }, { "date": 1877806800000, "value": 95 }, { "date": 1877893200000, "value": 94 }, { "date": 1877979600000, "value": 98 }, { "date": 1878066000000, "value": 95 }, { "date": 1878152400000, "value": 94 }, { "date": 1878238800000, "value": 94 }, { "date": 1878325200000, "value": 94 }, { "date": 1878411600000, "value": 97 }, { "date": 1878498000000, "value": 93 }, { "date": 1878584400000, "value": 96 }, { "date": 1878670800000, "value": 98 }, { "date": 1878757200000, "value": 93 }, { "date": 1878843600000, "value": 96 }, { "date": 1878930000000, "value": 98 }, { "date": 1879016400000, "value": 94 }, { "date": 1879102800000, "value": 93 }, { "date": 1879189200000, "value": 91 }, { "date": 1879275600000, "value": 94 }, { "date": 1879362000000, "value": 98 }, { "date": 1879448400000, "value": 100 }, { "date": 1879534800000, "value": 102 }, { "date": 1879621200000, "value": 107 }, { "date": 1879707600000, "value": 112 }, { "date": 1879794000000, "value": 113 }, { "date": 1879880400000, "value": 116 }, { "date": 1879966800000, "value": 117 }, { "date": 1880053200000, "value": 115 }, { "date": 1880139600000, "value": 120 }, { "date": 1880226000000, "value": 122 }, { "date": 1880312400000, "value": 122 }, { "date": 1880398800000, "value": 124 }, { "date": 1880485200000, "value": 123 }, { "date": 1880571600000, "value": 122 }, { "date": 1880658000000, "value": 119 }, { "date": 1880744400000, "value": 118 }, { "date": 1880830800000, "value": 122 }, { "date": 1880917200000, "value": 126 }, { "date": 1881003600000, "value": 125 }, { "date": 1881090000000, "value": 120 }, { "date": 1881176400000, "value": 115 }, { "date": 1881262800000, "value": 116 }, { "date": 1881349200000, "value": 111 }, { "date": 1881435600000, "value": 113 }, { "date": 1881522000000, "value": 109 }, { "date": 1881608400000, "value": 111 }, { "date": 1881694800000, "value": 112 }, { "date": 1881781200000, "value": 111 }, { "date": 1881867600000, "value": 114 }, { "date": 1881954000000, "value": 112 }, { "date": 1882040400000, "value": 116 }, { "date": 1882126800000, "value": 112 }, { "date": 1882213200000, "value": 117 }, { "date": 1882299600000, "value": 115 }, { "date": 1882386000000, "value": 119 }, { "date": 1882472400000, "value": 118 }, { "date": 1882558800000, "value": 120 }, { "date": 1882645200000, "value": 121 }, { "date": 1882731600000, "value": 122 }, { "date": 1882818000000, "value": 125 }, { "date": 1882904400000, "value": 120 }, { "date": 1882990800000, "value": 119 }, { "date": 1883077200000, "value": 117 }, { "date": 1883163600000, "value": 115 }, { "date": 1883250000000, "value": 117 }, { "date": 1883336400000, "value": 121 }, { "date": 1883422800000, "value": 117 }, { "date": 1883509200000, "value": 113 }, { "date": 1883595600000, "value": 112 }, { "date": 1883682000000, "value": 115 }, { "date": 1883768400000, "value": 112 }, { "date": 1883854800000, "value": 116 }, { "date": 1883941200000, "value": 111 }, { "date": 1884027600000, "value": 114 }, { "date": 1884114000000, "value": 111 }, { "date": 1884200400000, "value": 113 }, { "date": 1884286800000, "value": 114 }, { "date": 1884373200000, "value": 117 }, { "date": 1884459600000, "value": 118 }, { "date": 1884546000000, "value": 123 }, { "date": 1884632400000, "value": 119 }, { "date": 1884718800000, "value": 123 }, { "date": 1884805200000, "value": 123 }, { "date": 1884891600000, "value": 121 }, { "date": 1884978000000, "value": 118 }, { "date": 1885064400000, "value": 118 }, { "date": 1885150800000, "value": 119 }, { "date": 1885237200000, "value": 116 }, { "date": 1885323600000, "value": 121 }, { "date": 1885410000000, "value": 119 }, { "date": 1885496400000, "value": 120 }, { "date": 1885582800000, "value": 123 }, { "date": 1885669200000, "value": 123 }, { "date": 1885755600000, "value": 127 }, { "date": 1885842000000, "value": 123 }, { "date": 1885928400000, "value": 126 }, { "date": 1886014800000, "value": 123 }, { "date": 1886101200000, "value": 118 }, { "date": 1886187600000, "value": 121 }, { "date": 1886274000000, "value": 124 }, { "date": 1886360400000, "value": 124 }, { "date": 1886446800000, "value": 120 }, { "date": 1886533200000, "value": 117 }, { "date": 1886619600000, "value": 114 }, { "date": 1886706000000, "value": 115 }, { "date": 1886792400000, "value": 119 }, { "date": 1886878800000, "value": 117 }, { "date": 1886965200000, "value": 118 }, { "date": 1887051600000, "value": 113 }, { "date": 1887138000000, "value": 113 }, { "date": 1887224400000, "value": 112 }, { "date": 1887310800000, "value": 116 }, { "date": 1887397200000, "value": 112 }, { "date": 1887483600000, "value": 115 }, { "date": 1887570000000, "value": 120 }, { "date": 1887656400000, "value": 121 }, { "date": 1887742800000, "value": 120 }, { "date": 1887829200000, "value": 119 }, { "date": 1887919200000, "value": 118 }, { "date": 1888005600000, "value": 115 }, { "date": 1888092000000, "value": 112 }, { "date": 1888178400000, "value": 108 }, { "date": 1888264800000, "value": 105 }, { "date": 1888351200000, "value": 105 }, { "date": 1888437600000, "value": 102 }, { "date": 1888524000000, "value": 100 }, { "date": 1888610400000, "value": 98 }, { "date": 1888696800000, "value": 102 }, { "date": 1888783200000, "value": 100 }, { "date": 1888869600000, "value": 101 }, { "date": 1888956000000, "value": 98 }, { "date": 1889042400000, "value": 94 }, { "date": 1889128800000, "value": 92 }, { "date": 1889215200000, "value": 91 }, { "date": 1889301600000, "value": 96 }, { "date": 1889388000000, "value": 96 }, { "date": 1889474400000, "value": 101 }, { "date": 1889560800000, "value": 102 }, { "date": 1889647200000, "value": 107 }, { "date": 1889733600000, "value": 109 }, { "date": 1889820000000, "value": 107 }, { "date": 1889906400000, "value": 108 }, { "date": 1889992800000, "value": 103 }, { "date": 1890079200000, "value": 106 }, { "date": 1890165600000, "value": 105 }, { "date": 1890252000000, "value": 107 }, { "date": 1890338400000, "value": 110 }, { "date": 1890424800000, "value": 110 }, { "date": 1890511200000, "value": 107 }, { "date": 1890597600000, "value": 108 }, { "date": 1890684000000, "value": 112 }, { "date": 1890770400000, "value": 107 }, { "date": 1890856800000, "value": 111 }, { "date": 1890943200000, "value": 110 }, { "date": 1891029600000, "value": 111 }, { "date": 1891116000000, "value": 112 }, { "date": 1891202400000, "value": 109 }, { "date": 1891288800000, "value": 106 }, { "date": 1891375200000, "value": 105 }, { "date": 1891461600000, "value": 100 }, { "date": 1891548000000, "value": 98 }, { "date": 1891634400000, "value": 100 }, { "date": 1891720800000, "value": 102 }, { "date": 1891807200000, "value": 101 }, { "date": 1891893600000, "value": 98 }, { "date": 1891980000000, "value": 100 }, { "date": 1892066400000, "value": 98 }, { "date": 1892152800000, "value": 98 }, { "date": 1892239200000, "value": 101 }, { "date": 1892325600000, "value": 99 }, { "date": 1892412000000, "value": 103 }, { "date": 1892498400000, "value": 102 }, { "date": 1892584800000, "value": 98 }, { "date": 1892671200000, "value": 97 }, { "date": 1892757600000, "value": 98 }, { "date": 1892844000000, "value": 98 }, { "date": 1892930400000, "value": 100 }, { "date": 1893016800000, "value": 105 }, { "date": 1893103200000, "value": 102 }, { "date": 1893189600000, "value": 97 }, { "date": 1893276000000, "value": 102 }, { "date": 1893362400000, "value": 103 }, { "date": 1893448800000, "value": 104 }, { "date": 1893535200000, "value": 104 }, { "date": 1893621600000, "value": 107 }, { "date": 1893708000000, "value": 103 }, { "date": 1893794400000, "value": 107 }, { "date": 1893880800000, "value": 105 }, { "date": 1893967200000, "value": 105 }, { "date": 1894053600000, "value": 106 }, { "date": 1894140000000, "value": 110 }, { "date": 1894226400000, "value": 112 }, { "date": 1894312800000, "value": 115 }, { "date": 1894399200000, "value": 111 }, { "date": 1894485600000, "value": 107 }, { "date": 1894572000000, "value": 111 }, { "date": 1894658400000, "value": 112 }, { "date": 1894744800000, "value": 114 }, { "date": 1894831200000, "value": 112 }, { "date": 1894917600000, "value": 110 }, { "date": 1895004000000, "value": 110 }, { "date": 1895090400000, "value": 108 }, { "date": 1895176800000, "value": 107 }, { "date": 1895263200000, "value": 109 }, { "date": 1895349600000, "value": 104 }, { "date": 1895436000000, "value": 102 }, { "date": 1895522400000, "value": 98 }, { "date": 1895608800000, "value": 101 }, { "date": 1895695200000, "value": 100 }, { "date": 1895781600000, "value": 102 }, { "date": 1895868000000, "value": 100 }, { "date": 1895954400000, "value": 95 }, { "date": 1896040800000, "value": 92 }, { "date": 1896127200000, "value": 94 }, { "date": 1896213600000, "value": 96 }, { "date": 1896300000000, "value": 99 }, { "date": 1896386400000, "value": 97 }, { "date": 1896472800000, "value": 101 }, { "date": 1896559200000, "value": 102 }, { "date": 1896645600000, "value": 101 }, { "date": 1896732000000, "value": 102 }, { "date": 1896818400000, "value": 98 }, { "date": 1896904800000, "value": 102 }, { "date": 1896991200000, "value": 97 }, { "date": 1897077600000, "value": 98 }, { "date": 1897164000000, "value": 95 } ] }, { "axis-0": { "type": "DateAxis", "settings": { "maxDeviation": 0.2, "baseInterval": { "timeUnit": "day", "count": 1 }, "renderer": { "type": "AxisRendererX" }, "tooltip": { "type": "Tooltip" } } } }, { "axis-1": { "type": "ValueAxis", "settings": { "renderer": { "type": "AxisRendererY" } } } }, { "series-0": { "type": "LineSeries", "settings": { "name": "Series", "xAxis": "#axis-0", "yAxis": "#axis-1", "valueYField": "value", "valueXField": "date", "tooltip": { "type": "Tooltip", "settings": { "labelText": "{valueY}" } } }, "properties": { "data": "#data-0" } } } ]}watermarks-on-an-xychartIn a panel of stock chart
Section titled “In a panel of stock chart”Since panels of a stock chart are essentially instances of an XY charts, we can do the same as we did in the previous section: push elements into panel’s plotContainer.children:
let copyright = mainPanel.plotContainer.children.push(am5.Label.new(root, { text: "Copyright amCharts", x: 10, y: am5.p100, centerY: am5.p100, dy: -10}));
let logo = mainPanel.plotContainer.children.push(am5.Picture.new(root, { src: "https://assets.codepen.io/t-160/amcharts_light.svg", width: 100, x: am5.p100, centerX: am5.p100, dx: -10, y: am5.p100, centerY: am5.p100}));var copyright = mainPanel.plotContainer.children.push(am5.Label.new(root, { text: "Copyright amCharts", x: 10, y: am5.p100, centerY: am5.p100, dy: -10}));
var logo = mainPanel.plotContainer.children.push(am5.Picture.new(root, { src: "https://assets.codepen.io/t-160/amcharts_light.svg", width: 100, x: am5.p100, centerX: am5.p100, dx: -10, y: am5.p100, centerY: am5.p100}));/** * --------------------------------------- * This demo was created using amCharts 5. * * For more information visit: * https://www.amcharts.com/ * * Documentation is available at: * https://www.amcharts.com/docs/v5/ * --------------------------------------- */
// Create root element// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/getting-started/#Root_elementvar root = am5.Root.new("chartdiv");
// Set themes// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/concepts/themes/root.setThemes([am5themes_Animated.new(root)]);
// Create a stock chart// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/stock-chart/#Instantiating_the_chartvar stockChart = root.container.children.push(am5stock.StockChart.new(root, {}));
// Set global number format// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/concepts/formatters/formatting-numbers/root.numberFormatter.set("numberFormat", "#,###.00");
// Create a main stock panel (chart)// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/stock-chart/#Adding_panelsvar mainPanel = stockChart.panels.push( am5stock.StockPanel.new(root, { wheelY: "zoomX", panX: true, panY: true }));
// Adding watermarksvar copyright = mainPanel.plotContainer.children.push( am5.Label.new(root, { text: "Copyright amCharts", x: 10, y: am5.p100, centerY: am5.p100, dy: -10 }));
var logo = mainPanel.plotContainer.children.push( am5.Picture.new(root, { src: "https://docs.amcharts.com/assets/amcharts_light.svg", width: 100, x: am5.p100, centerX: am5.p100, dx: -10, y: am5.p100, centerY: am5.p100 }));
// Create value axis// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/xy-chart/axes/var valueAxis = mainPanel.yAxes.push( am5xy.ValueAxis.new(root, { renderer: am5xy.AxisRendererY.new(root, { pan: "zoom" }),
extraMin: 0.1, // adds some space for for main series tooltip: am5.Tooltip.new(root, {}), numberFormat: "#,###.00", extraTooltipPrecision: 2 }));
var dateAxis = mainPanel.xAxes.push( am5xy.GaplessDateAxis.new(root, { baseInterval: { timeUnit: "day", count: 1 },
renderer: am5xy.AxisRendererX.new(root, {}), tooltip: am5.Tooltip.new(root, {}) }));
// Add series// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/xy-chart/series/var valueSeries = mainPanel.series.push( am5xy.CandlestickSeries.new(root, { name: "MSFT", clustered: false, valueXField: "Date", valueYField: "Close", highValueYField: "High", lowValueYField: "Low", openValueYField: "Open", calculateAggregates: true, xAxis: dateAxis, yAxis: valueAxis, legendValueText: "open: [bold]{openValueY}[/] high: [bold]{highValueY}[/] low: [bold]{lowValueY}[/] close: [bold]{valueY}[/]", legendRangeValueText: "" }));
// Set main value series// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/stock-chart/#Setting_main_seriesstockChart.set("stockSeries", valueSeries);
// Add a stock legend// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/stock-chart/stock-legend/var valueLegend = mainPanel.plotContainer.children.push( am5stock.StockLegend.new(root, { stockChart: stockChart }));
// Create volume axis// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/xy-chart/axes/var volumeAxisRenderer = am5xy.AxisRendererY.new(root, { inside: true});
volumeAxisRenderer.labels.template.set("forceHidden", true);volumeAxisRenderer.grid.template.set("forceHidden", true);
var volumeValueAxis = mainPanel.yAxes.push( am5xy.ValueAxis.new(root, { numberFormat: "#.#a", height: am5.percent(20), y: am5.percent(100), centerY: am5.percent(100), renderer: volumeAxisRenderer }));
// Add series// https://www.amcharts.com/docs/v5/charts/xy-chart/series/var volumeSeries = mainPanel.series.push( am5xy.ColumnSeries.new(root, { name: "Volume", clustered: false, valueXField: "Date", valueYField: "Volume", xAxis: dateAxis, yAxis: volumeValueAxis, legendValueText: "[bold]{valueY.formatNumber('#,###.0a')}[/]" }));
volumeSeries.columns.template.setAll({ strokeOpacity: 0, fillOpacity: 0.5});
// color columns by stock rulesvolumeSeries.columns.template.adapters.add("fill", function (fill, target) { var dataItem = target.dataItem; if (dataItem) { return stockChart.getVolumeColor(dataItem); } return fill;});
// Set main series// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/stock-chart/#Setting_main_seriesstockChart.set("volumeSeries", volumeSeries);valueLegend.data.setAll([valueSeries, volumeSeries]);
// Add cursor(s)// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/mainPanel.set( "cursor", am5xy.XYCursor.new(root, { yAxis: valueAxis, xAxis: dateAxis, snapToSeries: [valueSeries], snapToSeriesBy: "y!" }));
// Add scrollbar// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/xy-chart/scrollbars/var scrollbar = mainPanel.set( "scrollbarX", am5xy.XYChartScrollbar.new(root, { orientation: "horizontal", height: 50 }));
stockChart.toolsContainer.children.push(scrollbar);
var sbDateAxis = scrollbar.chart.xAxes.push( am5xy.GaplessDateAxis.new(root, { baseInterval: { timeUnit: "day", count: 1 },
renderer: am5xy.AxisRendererX.new(root, {}) }));
var sbValueAxis = scrollbar.chart.yAxes.push( am5xy.ValueAxis.new(root, { renderer: am5xy.AxisRendererY.new(root, {}) }));
var sbSeries = scrollbar.chart.series.push( am5xy.LineSeries.new(root, { valueYField: "Close", valueXField: "Date", xAxis: sbDateAxis, yAxis: sbValueAxis }));
sbSeries.fills.template.setAll({ visible: true, fillOpacity: 0.3});
// Set up series type switcher// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/stock/toolbar/series-type-control/var seriesSwitcher = am5stock.SeriesTypeControl.new(root, { stockChart: stockChart});
seriesSwitcher.events.on("selected", function (ev) { setSeriesType(ev.item.id);});
function getNewSettings(series) { var newSettings = []; am5.array.each( [ "name", "valueYField", "highValueYField", "lowValueYField", "openValueYField", "calculateAggregates", "valueXField", "xAxis", "yAxis", "legendValueText", "stroke", "fill" ], function (setting) { newSettings[setting] = series.get(setting); } ); return newSettings;}
function setSeriesType(seriesType) { // Get current series and its settings var currentSeries = stockChart.get("stockSeries"); var newSettings = getNewSettings(currentSeries);
// Remove previous series var data = currentSeries.data.values; mainPanel.series.removeValue(currentSeries);
// Create new series var series; switch (seriesType) { case "line": series = mainPanel.series.push(am5xy.LineSeries.new(root, newSettings)); break; case "candlestick": case "procandlestick": newSettings.clustered = false; series = mainPanel.series.push(am5xy.CandlestickSeries.new(root, newSettings)); if (seriesType == "procandlestick") { series.columns.template.get("themeTags").push("pro"); } break; case "ohlc": newSettings.clustered = false; series = mainPanel.series.push(am5xy.OHLCSeries.new(root, newSettings)); break; }
// Set new series as stockSeries if (series) { valueLegend.data.removeValue(currentSeries); series.data.setAll(data); stockChart.set("stockSeries", series); var cursor = mainPanel.get("cursor"); if (cursor) { cursor.set("snapToSeries", [series]); } valueLegend.data.insertIndex(0, series); }}
// Stock toolbar// -------------------------------------------------------------------------------// https://www.amcharts.com/docs/v5/charts/stock/toolbar/var toolbar = am5stock.StockToolbar.new(root, { container: document.getElementById("chartcontrols"), stockChart: stockChart, controls: [ am5stock.IndicatorControl.new(root, { stockChart: stockChart, legend: valueLegend }),
am5stock.DateRangeSelector.new(root, { stockChart: stockChart }),
am5stock.PeriodSelector.new(root, { stockChart: stockChart }),
seriesSwitcher, am5stock.DrawingControl.new(root, { stockChart: stockChart }),
am5stock.ResetControl.new(root, { stockChart: stockChart }),
am5stock.SettingsControl.new(root, { stockChart: stockChart }) ]});
// datavar data = [ { Date: 1617192000000, Open: 515.67, High: 528.13, Low: 515.44, Close: 521.66, Volume: 3503100 }, { Date: 1617278400000, Open: 529.93, High: 540.5, Low: 527.03, Close: 539.42, Volume: 3938600 }, { Date: 1617624000000, Open: 540.01, High: 542.85, Low: 529.23, Close: 540.67, Volume: 3355900 }, { Date: 1617710400000, Open: 544.81, High: 554.17, Low: 543.3, Close: 544.53, Volume: 3474200 }, { Date: 1617796800000, Open: 543.5, High: 549.64, Low: 541.45, Close: 546.99, Volume: 2151300 }, { Date: 1617883200000, Open: 551.13, High: 556.9, Low: 547.57, Close: 554.58, Volume: 4309800 }, { Date: 1617969600000, Open: 552.69, High: 556.9, Low: 547.11, Close: 555.31, Volume: 2894000 }, { Date: 1618228800000, Open: 551.05, High: 557.98, Low: 549.58, Close: 552.78, Volume: 2944100 }, { Date: 1618315200000, Open: 557, High: 559.75, Low: 550.3, Close: 553.73, Volume: 2720300 }, { Date: 1618401600000, Open: 554.87, High: 554.87, Low: 538.53, Close: 540.02, Volume: 3740300 }, { Date: 1618488000000, Open: 544.17, High: 553.49, Low: 542.66, Close: 549.22, Volume: 3139100 }, { Date: 1618574400000, Open: 550.54, High: 551.98, Low: 539.51, Close: 546.54, Volume: 3209100 }, { Date: 1618833600000, Open: 546.9, High: 556.44, Low: 545.53, Close: 554.44, Volume: 4288700 }, { Date: 1618920000000, Open: 554.42, High: 563.56, Low: 546.3, Close: 549.57, Volume: 11257600 }, { Date: 1619006400000, Open: 508, High: 515.46, Low: 503.6, Close: 508.9, Volume: 22897400 }, { Date: 1619092800000, Open: 513.82, High: 513.96, Low: 500.55, Close: 508.78, Volume: 9061100 }, { Date: 1619179200000, Open: 509.01, High: 509.7, Low: 500.7, Close: 505.55, Volume: 7307700 }, { Date: 1619438400000, Open: 506.76, High: 510.48, Low: 503, Close: 510.3, Volume: 4388800 }, { Date: 1619524800000, Open: 512.62, High: 512.99, Low: 504.58, Close: 505.55, Volume: 3761300 }, { Date: 1619611200000, Open: 505.2, High: 508.4, Low: 503.34, Close: 506.52, Volume: 3193000 }, { Date: 1619697600000, Open: 507.6, High: 509.29, Low: 499, Close: 509, Volume: 5127800 }, { Date: 1619784000000, Open: 505, High: 514.55, Low: 505, Close: 513.47, Volume: 4413200 }, { Date: 1620043200000, Open: 512.65, High: 518.95, Low: 505.2, Close: 509.11, Volume: 4091900 }, { Date: 1620129600000, Open: 510.78, High: 511.63, Low: 496.79, Close: 503.18, Volume: 4349500 }, { Date: 1620216000000, Open: 504.99, High: 507.78, Low: 494.63, Close: 496.08, Volume: 3129400 }, { Date: 1620302400000, Open: 495.99, High: 499.55, Low: 491.37, Close: 499.55, Volume: 3783700 }, { Date: 1620388800000, Open: 504.62, High: 508.55, Low: 501.12, Close: 503.84, Volume: 3132800 }, { Date: 1620648000000, Open: 502, High: 503.15, Low: 486.11, Close: 486.69, Volume: 5131600 }, { Date: 1620734400000, Open: 479.75, High: 497.99, Low: 478.63, Close: 495.08, Volume: 4401000 }, { Date: 1620820800000, Open: 486.83, High: 493.54, Low: 482.7, Close: 484.98, Volume: 4121500 }, { Date: 1620907200000, Open: 489.13, High: 490.78, Low: 482.71, Close: 486.66, Volume: 2712500 }, { Date: 1620993600000, Open: 487.86, High: 494.85, Low: 486.59, Close: 493.37, Volume: 2882500 }, { Date: 1621252800000, Open: 485.59, High: 492.71, Low: 482.81, Close: 488.94, Volume: 2705200 }, { Date: 1621339200000, Open: 488.4, High: 493.48, Low: 486.19, Close: 486.28, Volume: 2350500 }, { Date: 1621425600000, Open: 481.63, High: 488.57, Low: 478.54, Close: 487.7, Volume: 3349900 }, { Date: 1621512000000, Open: 489.55, High: 502.7, Low: 488.98, Close: 501.67, Volume: 3721200 }, { Date: 1621598400000, Open: 503.12, High: 505.4, Low: 497.26, Close: 497.89, Volume: 3322900 }, { Date: 1621857600000, Open: 501.05, High: 504.25, Low: 499.51, Close: 502.9, Volume: 2412600 }, { Date: 1621944000000, Open: 506, High: 506.37, Low: 499.22, Close: 501.34, Volume: 2699500 }, { Date: 1622030400000, Open: 502.34, High: 504.14, Low: 500.5, Close: 502.36, Volume: 2465300 }, { Date: 1622116800000, Open: 501.8, High: 505.1, Low: 498.54, Close: 503.86, Volume: 3253800 }, { Date: 1622203200000, Open: 504.4, High: 511.76, Low: 502.53, Close: 502.81, Volume: 2910300 }, { Date: 1622548800000, Open: 504.01, High: 505.41, Low: 497.74, Close: 499.08, Volume: 2482600 }, { Date: 1622635200000, Open: 499.82, High: 503.22, Low: 495.82, Close: 499.24, Volume: 2269000 }, { Date: 1622721600000, Open: 495.19, High: 496.66, Low: 487.25, Close: 489.43, Volume: 3887400 }, { Date: 1622808000000, Open: 492, High: 501.86, Low: 490.95, Close: 494.74, Volume: 3160500 }, { Date: 1623067200000, Open: 492.92, High: 496.7, Low: 490.55, Close: 494.66, Volume: 2791900 }, { Date: 1623153600000, Open: 497, High: 498.82, Low: 489.37, Close: 492.39, Volume: 2374000 }, { Date: 1623240000000, Open: 494.5, High: 496.09, Low: 484.65, Close: 485.81, Volume: 3055000 }, { Date: 1623326400000, Open: 487.17, High: 490.21, Low: 482.14, Close: 487.27, Volume: 4382900 }, { Date: 1623412800000, Open: 490, High: 491.41, Low: 487.78, Close: 488.77, Volume: 3124000 }, { Date: 1623672000000, Open: 489.68, High: 503.5, Low: 486.91, Close: 499.89, Volume: 4400200 }, { Date: 1623758400000, Open: 501.23, High: 501.23, Low: 490.4, Close: 491.9, Volume: 3104100 }, { Date: 1623844800000, Open: 495, High: 496.46, Low: 486.28, Close: 492.41, Volume: 3533200 }, { Date: 1623931200000, Open: 490.25, High: 501.8, Low: 490.15, Close: 498.34, Volume: 3198300 }, { Date: 1624017600000, Open: 496.4, High: 504.49, Low: 495.24, Close: 500.77, Volume: 5197600 }, { Date: 1624276800000, Open: 501.64, High: 502.05, Low: 492.28, Close: 497, Volume: 5277300 }, { Date: 1624363200000, Open: 498.54, High: 513.55, Low: 495.8, Close: 508.82, Volume: 5809300 }, { Date: 1624449600000, Open: 508.48, High: 516.63, Low: 508.2, Close: 512.74, Volume: 3944800 }, { Date: 1624536000000, Open: 517.96, High: 520.96, Low: 514.4, Close: 518.06, Volume: 3361200 }, { Date: 1624622400000, Open: 528.84, High: 533.06, Low: 525, Close: 527.07, Volume: 5299100 }, { Date: 1624881600000, Open: 528.12, High: 533.94, Low: 524.56, Close: 533.03, Volume: 2820200 }, { Date: 1624968000000, Open: 533.55, High: 536.13, Low: 528.57, Close: 533.5, Volume: 2314600 }, { Date: 1625054400000, Open: 534.06, High: 534.38, Low: 526.82, Close: 528.21, Volume: 2773400 }, { Date: 1625140800000, Open: 525.72, High: 537.04, Low: 525.72, Close: 533.54, Volume: 2805400 }, { Date: 1625227200000, Open: 535.5, High: 538.54, Low: 529.39, Close: 533.98, Volume: 1975500 }, { Date: 1625572800000, Open: 533, High: 542.86, Low: 533, Close: 541.64, Volume: 2775100 }, { Date: 1625659200000, Open: 544.24, High: 544.64, Low: 531.66, Close: 535.96, Volume: 2722500 }, { Date: 1625745600000, Open: 530.93, High: 535.5, Low: 529.09, Close: 530.76, Volume: 3269000 }, { Date: 1625832000000, Open: 531, High: 538.26, Low: 528.58, Close: 535.98, Volume: 2777200 }, { Date: 1626091200000, Open: 540.3, High: 540.65, Low: 532.92, Close: 537.31, Volume: 1780700 }, { Date: 1626177600000, Open: 535.76, High: 545.33, Low: 535.76, Close: 540.68, Volume: 2751600 }, { Date: 1626264000000, Open: 541.01, High: 554.1, Low: 541.01, Close: 547.95, Volume: 4659500 }, { Date: 1626350400000, Open: 553.97, High: 557.54, Low: 538.2, Close: 542.95, Volume: 5713900 }, { Date: 1626436800000, Open: 541.81, High: 544.06, Low: 527.05, Close: 530.31, Volume: 3442100 }, { Date: 1626696000000, Open: 526.05, High: 534.91, Low: 522.24, Close: 532.28, Volume: 3885800 }, { Date: 1626782400000, Open: 526.07, High: 536.64, Low: 520.3, Close: 531.05, Volume: 6930400 }, { Date: 1626868800000, Open: 526.13, High: 530.99, Low: 505.61, Close: 513.63, Volume: 11906800 }, { Date: 1626955200000, Open: 510.21, High: 513.68, Low: 507, Close: 511.77, Volume: 4328100 }, { Date: 1627041600000, Open: 512.16, High: 517.41, Low: 504.66, Close: 515.41, Volume: 3820500 }, { Date: 1627300800000, Open: 514.38, High: 521.13, Low: 509.01, Close: 516.49, Volume: 2254500 }, { Date: 1627387200000, Open: 518.08, High: 521.95, Low: 512.05, Close: 518.91, Volume: 2759000 }, { Date: 1627473600000, Open: 521.82, High: 524.47, Low: 516.98, Close: 519.3, Volume: 2390500 }, { Date: 1627560000000, Open: 519.96, High: 520.78, Low: 513.79, Close: 514.25, Volume: 1736000 }, { Date: 1627646400000, Open: 512.69, High: 519.79, Low: 510.96, Close: 517.57, Volume: 2537100 }, { Date: 1627905600000, Open: 519, High: 519.85, Low: 510.51, Close: 515.15, Volume: 2096600 }, { Date: 1627992000000, Open: 514.39, High: 515.63, Low: 505.37, Close: 510.82, Volume: 2579400 }, { Date: 1628078400000, Open: 513, High: 517.98, Low: 510.37, Close: 517.35, Volume: 2039400 }, { Date: 1628164800000, Open: 517.13, High: 525.41, Low: 514.02, Close: 524.89, Volume: 2556700 }, { Date: 1628251200000, Open: 524, High: 526.84, Low: 519.39, Close: 520.55, Volume: 1919800 }, { Date: 1628510400000, Open: 521.15, High: 522.67, Low: 517.99, Close: 519.97, Volume: 1367800 }, { Date: 1628596800000, Open: 520, High: 520.79, Low: 512.97, Close: 515.84, Volume: 1960500 }, { Date: 1628683200000, Open: 517, High: 519.57, Low: 509.77, Close: 512.4, Volume: 1673900 }, { Date: 1628769600000, Open: 511.86, High: 513, Low: 507.2, Close: 510.72, Volume: 1685700 }, { Date: 1628856000000, Open: 512.64, High: 521.44, Low: 511.51, Close: 515.92, Volume: 2177700 }, { Date: 1629115200000, Open: 515.24, High: 523.38, Low: 512.3, Close: 517.92, Volume: 2032800 }, { Date: 1629201600000, Open: 515.47, High: 520.79, Low: 514.2, Close: 518.91, Volume: 2309800 }, { Date: 1629288000000, Open: 520, High: 526.38, Low: 518.65, Close: 521.87, Volume: 2582000 }, { Date: 1629374400000, Open: 522.74, High: 548.39, Low: 521.87, Close: 543.71, Volume: 7497300 }, { Date: 1629460800000, Open: 545.09, High: 551.39, Low: 539.1, Close: 546.88, Volume: 3776400 }, { Date: 1629720000000, Open: 545.98, High: 555.55, Low: 543.74, Close: 553.33, Volume: 2602000 }, { Date: 1629806400000, Open: 551.48, High: 555.31, Low: 549.27, Close: 553.41, Volume: 2109500 }, { Date: 1629892800000, Open: 550.16, High: 552.84, Low: 545.45, Close: 547.58, Volume: 2065600 }, { Date: 1629979200000, Open: 546.16, High: 552.6, Low: 545.9, Close: 550.12, Volume: 1595500 }, { Date: 1630065600000, Open: 551.6, High: 564.17, Low: 549.25, Close: 558.92, Volume: 3252600 }, { Date: 1630324800000, Open: 557.25, High: 567.16, Low: 556.45, Close: 566.18, Volume: 2434800 }, { Date: 1630411200000, Open: 566.12, High: 569.48, Low: 561.61, Close: 569.19, Volume: 2431900 }, { Date: 1630497600000, Open: 569, High: 591, Low: 569, Close: 582.07, Volume: 5626200 }, { Date: 1630584000000, Open: 583.68, High: 598.76, Low: 583.68, Close: 588.55, Volume: 6179900 }, { Date: 1630670400000, Open: 585.8, High: 591.88, Low: 583.14, Close: 590.53, Volume: 2681200 }, { Date: 1631016000000, Open: 594.69, High: 613.85, Low: 593.99, Close: 606.71, Volume: 5821400 }, { Date: 1631102400000, Open: 603.84, High: 615.6, Low: 595.71, Close: 606.05, Volume: 5424500 }, { Date: 1631188800000, Open: 606.47, High: 609.44, Low: 596.55, Close: 597.54, Volume: 2954200 }, { Date: 1631275200000, Open: 598.16, High: 609.45, Low: 593.67, Close: 598.72, Volume: 3950800 }, { Date: 1631534400000, Open: 598.57, High: 598.57, Low: 582.78, Close: 589.29, Volume: 3062900 }, { Date: 1631620800000, Open: 584.89, High: 587.28, Low: 575.56, Close: 577.76, Volume: 3457000 }, { Date: 1631707200000, Open: 578.17, High: 584.62, Low: 575.37, Close: 582.87, Volume: 2755600 }, { Date: 1631793600000, Open: 584.3, High: 587.48, Low: 577.72, Close: 586.5, Volume: 1832000 }, { Date: 1631880000000, Open: 587.85, High: 590.28, Low: 580.85, Close: 589.35, Volume: 4145100 }, { Date: 1632139200000, Open: 586.79, High: 591.53, Low: 568.08, Close: 575.43, Volume: 3732200 }, { Date: 1632225600000, Open: 578.31, High: 581.88, Low: 569.37, Close: 573.14, Volume: 2250900 }, { Date: 1632312000000, Open: 579.69, High: 595.65, Low: 579.69, Close: 590.65, Volume: 4021800 }, { Date: 1632398400000, Open: 590.79, High: 599.32, Low: 589.13, Close: 593.26, Volume: 2526200 }, { Date: 1632484800000, Open: 592.5, High: 592.98, Low: 583.64, Close: 592.39, Volume: 2126200 }, { Date: 1632744000000, Open: 587.95, High: 593.58, Low: 576.93, Close: 592.64, Volume: 2504700 }, { Date: 1632830400000, Open: 589, High: 599.54, Low: 580.16, Close: 583.85, Volume: 4431100 }, { Date: 1632916800000, Open: 589.01, High: 609.88, Low: 588.01, Close: 599.06, Volume: 6221000 }, { Date: 1633003200000, Open: 608.05, High: 619, Low: 608.05, Close: 610.34, Volume: 6612600 }, { Date: 1633089600000, Open: 604.24, High: 614.99, Low: 597.51, Close: 613.15, Volume: 4090800 }, { Date: 1633348800000, Open: 613.39, High: 626.13, Low: 594.68, Close: 603.35, Volume: 4995900 }, { Date: 1633435200000, Open: 606.94, High: 640.39, Low: 606.89, Close: 634.81, Volume: 9534300 }, { Date: 1633521600000, Open: 628.18, High: 639.87, Low: 626.36, Close: 639.1, Volume: 4580400 }, { Date: 1633608000000, Open: 642.23, High: 646.84, Low: 630.45, Close: 631.85, Volume: 3556900 }, { Date: 1633694400000, Open: 634.17, High: 643.8, Low: 630.86, Close: 632.66, Volume: 3272100 }, { Date: 1633953600000, Open: 633.2, High: 639.42, Low: 626.78, Close: 627.04, Volume: 2862500 }, { Date: 1634040000000, Open: 633.02, High: 637.66, Low: 621.99, Close: 624.94, Volume: 3227300 }, { Date: 1634126400000, Open: 632.18, High: 632.18, Low: 622.1, Close: 629.76, Volume: 2420300 }, { Date: 1634212800000, Open: 632.23, High: 636.88, Low: 626.79, Close: 633.8, Volume: 2671700 }, { Date: 1634299200000, Open: 638, High: 639.42, Low: 625.16, Close: 628.29, Volume: 4116900 }, { Date: 1634558400000, Open: 632.1, High: 638.41, Low: 620.59, Close: 637.97, Volume: 4669100 }, { Date: 1634644800000, Open: 636.97, High: 641, Low: 632.3, Close: 639, Volume: 7633100 }, { Date: 1634731200000, Open: 625.57, High: 637.4, Low: 617.15, Close: 625.14, Volume: 10622000 }, { Date: 1634817600000, Open: 628.89, High: 654.01, Low: 628.65, Close: 653.16, Volume: 8437100 }, { Date: 1634904000000, Open: 651.81, High: 665.46, Low: 651.81, Close: 664.78, Volume: 6186000 }, { Date: 1635163200000, Open: 663.74, High: 675.88, Low: 657.07, Close: 671.66, Volume: 3833500 }, { Date: 1635249600000, Open: 673.76, High: 676.49, Low: 662.77, Close: 668.52, Volume: 2904800 }, { Date: 1635336000000, Open: 669, High: 671.41, Low: 661.85, Close: 662.92, Volume: 2276900 }, { Date: 1635422400000, Open: 670.95, High: 676.8, Low: 668.03, Close: 674.05, Volume: 2859400 }, { Date: 1635508800000, Open: 673.06, High: 690.97, Low: 671.24, Close: 690.31, Volume: 3825300 }, { Date: 1635768000000, Open: 689.06, High: 689.97, Low: 676.54, Close: 681.17, Volume: 3110900 }, { Date: 1635854400000, Open: 683.11, High: 687.68, Low: 673.82, Close: 677.72, Volume: 3888600 }, { Date: 1635940800000, Open: 677.27, High: 689.39, Low: 677.27, Close: 688.29, Volume: 2334900 }, { Date: 1636027200000, Open: 685.89, High: 685.94, Low: 665.5, Close: 668.4, Volume: 4865000 }, { Date: 1636113600000, Open: 663.97, High: 665.64, Low: 645.01, Close: 645.72, Volume: 5283500 }, { Date: 1636372800000, Open: 650.29, High: 656, Low: 643.79, Close: 651.45, Volume: 2887500 }, { Date: 1636459200000, Open: 653.7, High: 660.5, Low: 650.52, Close: 655.99, Volume: 2415600 }, { Date: 1636545600000, Open: 653.01, High: 660.33, Low: 642.11, Close: 646.91, Volume: 2405800 }, { Date: 1636632000000, Open: 650.24, High: 665.82, Low: 649.71, Close: 657.58, Volume: 2868300 }, { Date: 1636718400000, Open: 660.01, High: 683.34, Low: 653.82, Close: 682.61, Volume: 4198400 }, { Date: 1636977600000, Open: 681.24, High: 685.26, Low: 671.49, Close: 679.33, Volume: 2872200 }, { Date: 1637064000000, Open: 678.27, High: 688.36, Low: 676.9, Close: 687.4, Volume: 2077400 }, { Date: 1637150400000, Open: 690, High: 700.99, Low: 686.09, Close: 691.69, Volume: 2732800 }, { Date: 1637236800000, Open: 691.61, High: 691.74, Low: 679.74, Close: 682.02, Volume: 2012900 }, { Date: 1637323200000, Open: 692.35, High: 694.16, Low: 675, Close: 678.8, Volume: 2613700 }, { Date: 1637582400000, Open: 676.02, High: 679.48, Low: 656.47, Close: 659.2, Volume: 2764400 }, { Date: 1637668800000, Open: 658.18, High: 666.43, Low: 646.05, Close: 654.06, Volume: 2320200 }, { Date: 1637755200000, Open: 658.01, High: 661.44, Low: 651.1, Close: 658.29, Volume: 1867300 }, { Date: 1637928000000, Open: 675, High: 676.41, Low: 660.67, Close: 665.64, Volume: 2872500 }, { Date: 1638187200000, Open: 663.2, High: 667.99, Low: 658.29, Close: 663.84, Volume: 2529400 }, { Date: 1638273600000, Open: 668.2, High: 675.38, Low: 640.01, Close: 641.9, Volume: 5608900 }, { Date: 1638360000000, Open: 649.48, High: 654.52, Low: 617.07, Close: 617.77, Volume: 3882800 }, { Date: 1638446400000, Open: 617.1, High: 625.36, Low: 612.88, Close: 616.47, Volume: 3331100 }, { Date: 1638532800000, Open: 622.75, High: 625.5, Low: 594, Close: 602.13, Volume: 4829300 }, { Date: 1638792000000, Open: 606.01, High: 617.29, Low: 601, Close: 612.69, Volume: 3075700 }, { Date: 1638878400000, Open: 619.83, High: 628.89, Low: 611.4, Close: 625.58, Volume: 3125200 }, { Date: 1638964800000, Open: 630, High: 632.46, Low: 623.2, Close: 628.08, Volume: 2220300 }, { Date: 1639051200000, Open: 627.58, High: 630.24, Low: 610.44, Close: 611, Volume: 2376300 }, { Date: 1639137600000, Open: 616.78, High: 617.74, Low: 605.88, Close: 611.66, Volume: 2748800 }, { Date: 1639396800000, Open: 612, High: 612.64, Low: 599.52, Close: 604.56, Volume: 2517900 }, { Date: 1639483200000, Open: 598.71, High: 602.29, Low: 588.13, Close: 597.99, Volume: 2984500 }, { Date: 1639569600000, Open: 598.18, High: 605.69, Low: 584.51, Close: 605.04, Volume: 2866200 }, { Date: 1639656000000, Open: 597.09, High: 602.83, Low: 588, Close: 591.06, Volume: 3143200 }, { Date: 1639742400000, Open: 591.61, High: 593.25, Low: 581.74, Close: 586.73, Volume: 4386900 }, { Date: 1640001600000, Open: 586.43, High: 602.88, Low: 584.26, Close: 593.74, Volume: 3358400 }, { Date: 1640088000000, Open: 597.54, High: 607.82, Low: 593.86, Close: 604.92, Volume: 2319400 }, { Date: 1640174400000, Open: 603.36, High: 614.82, Low: 602.63, Close: 614.24, Volume: 2335700 }, { Date: 1640260800000, Open: 616.4, High: 616.88, Low: 607.57, Close: 614.09, Volume: 1621100 }, { Date: 1640606400000, Open: 615, High: 615, Low: 609.25, Close: 613.12, Volume: 2061500 }, { Date: 1640692800000, Open: 614.95, High: 618.41, Low: 609.69, Close: 610.71, Volume: 1882800 }, { Date: 1640779200000, Open: 610.71, High: 613.98, Low: 604.68, Close: 610.54, Volume: 1287200 }, { Date: 1640865600000, Open: 612.99, High: 620.61, Low: 611.24, Close: 612.09, Volume: 1625100 }, { Date: 1640952000000, Open: 610.01, High: 614.08, Low: 602.05, Close: 602.44, Volume: 1995900 }, { Date: 1641211200000, Open: 605.61, High: 609.99, Low: 590.56, Close: 597.37, Volume: 3067500 }, { Date: 1641297600000, Open: 599.91, High: 600.41, Low: 581.6, Close: 591.15, Volume: 4393100 }, { Date: 1641384000000, Open: 592, High: 592.84, Low: 566.88, Close: 567.52, Volume: 4148700 }, { Date: 1641470400000, Open: 554.34, High: 563.36, Low: 542.01, Close: 553.29, Volume: 5711800 }, { Date: 1641556800000, Open: 549.46, High: 553.43, Low: 538.22, Close: 541.06, Volume: 3382900 }, { Date: 1641816000000, Open: 538.49, High: 543.69, Low: 526.32, Close: 539.85, Volume: 4486100 }, { Date: 1641902400000, Open: 536.99, High: 543.91, Low: 530.07, Close: 540.84, Volume: 3077800 }, { Date: 1641988800000, Open: 544.27, High: 544.27, Low: 532.02, Close: 537.22, Volume: 3787400 }, { Date: 1642075200000, Open: 537.06, High: 540.79, Low: 518.26, Close: 519.2, Volume: 4475100 }, { Date: 1642161600000, Open: 517.6, High: 538.37, Low: 511.88, Close: 525.69, Volume: 7861100 }, { Date: 1642507200000, Open: 520.08, High: 521.75, Low: 508.68, Close: 510.8, Volume: 4839100 }, { Date: 1642593600000, Open: 515, High: 523.21, Low: 510.51, Close: 515.86, Volume: 4353500 }, { Date: 1642680000000, Open: 517.75, High: 526.64, Low: 506.93, Close: 508.25, Volume: 12659000 }, { Date: 1642766400000, Open: 400.43, High: 409.15, Low: 379.99, Close: 397.5, Volume: 58904300 }, { Date: 1643025600000, Open: 383.91, High: 387.26, Low: 351.46, Close: 387.15, Volume: 32346000 }, { Date: 1643112000000, Open: 379.14, High: 387.71, Low: 365.13, Close: 366.42, Volume: 15145800 }, { Date: 1643198400000, Open: 378.27, High: 382.66, Low: 356.62, Close: 359.7, Volume: 12684000 }, { Date: 1643284800000, Open: 382.06, High: 394.8, Low: 378.1, Close: 386.7, Volume: 24324700 }, { Date: 1643371200000, Open: 386.76, High: 387, Low: 372.08, Close: 384.36, Volume: 11966600 }, { Date: 1643630400000, Open: 401.97, High: 427.7, Low: 398.2, Close: 427.14, Volume: 20047500 }, { Date: 1643716800000, Open: 432.96, High: 458.48, Low: 425.54, Close: 457.13, Volume: 22568100 }, { Date: 1643803200000, Open: 448.25, High: 451.98, Low: 426.48, Close: 429.48, Volume: 14346000 }, { Date: 1643889600000, Open: 421.44, High: 429.26, Low: 404.28, Close: 405.6, Volume: 9905200 }, { Date: 1643976000000, Open: 407.31, High: 412.77, Low: 396.64, Close: 410.17, Volume: 7789800 }, { Date: 1644235200000, Open: 410.17, High: 412.35, Low: 393.55, Close: 402.1, Volume: 8232900 }, { Date: 1644321600000, Open: 398.18, High: 406.61, Low: 395.83, Close: 403.53, Volume: 6818500 }, { Date: 1644408000000, Open: 408.65, High: 412.98, Low: 398.79, Close: 412.89, Volume: 7738200 }, { Date: 1644494400000, Open: 402.1, High: 408, Low: 396.36, Close: 406.27, Volume: 8452900 }, { Date: 1644580800000, Open: 405.33, High: 411.61, Low: 387.65, Close: 391.31, Volume: 7558900 }, { Date: 1644840000000, Open: 387.59, High: 409.36, Low: 386.89, Close: 396.57, Volume: 7202200 }, { Date: 1644926400000, Open: 403.79, High: 409.16, Low: 401.01, Close: 407.46, Volume: 5392300 }, { Date: 1645012800000, Open: 401.53, High: 401.56, Low: 390.38, Close: 398.08, Volume: 5277700 }, { Date: 1645099200000, Open: 394.24, High: 399.11, Low: 385.7, Close: 386.67, Volume: 4669200 }, { Date: 1645185600000, Open: 392.53, High: 402.87, Low: 389.05, Close: 391.29, Volume: 6801700 }, { Date: 1645531200000, Open: 388.95, High: 392.42, Low: 373.02, Close: 377.38, Volume: 6697500 }, { Date: 1645617600000, Open: 382.72, High: 386, Low: 366.66, Close: 367.46, Volume: 4614300 }, { Date: 1645704000000, Open: 355.09, High: 390.73, Low: 354.72, Close: 390.03, Volume: 7068700 }, { Date: 1645790400000, Open: 386.61, High: 391.29, Low: 375.58, Close: 390.8, Volume: 4841600 }, { Date: 1646049600000, Open: 387.33, High: 397.75, Low: 382.13, Close: 394.52, Volume: 5030600 }, { Date: 1646136000000, Open: 391.6, High: 395, Low: 383.71, Close: 386.24, Volume: 3290400 }, { Date: 1646222400000, Open: 388.93, High: 389.22, Low: 375.21, Close: 380.03, Volume: 5356800 }, { Date: 1646308800000, Open: 386, High: 386.12, Low: 364.65, Close: 368.07, Volume: 6076800 }, { Date: 1646395200000, Open: 368, High: 374.82, Low: 357.17, Close: 361.73, Volume: 5325500 }, { Date: 1646654400000, Open: 360.41, High: 362, Low: 350.2, Close: 350.26, Volume: 5708400 }, { Date: 1646740800000, Open: 349.8, High: 358.86, Low: 340.67, Close: 341.76, Volume: 6428700 }, { Date: 1646827200000, Open: 357.69, High: 364.14, Low: 350.51, Close: 358.79, Volume: 6520200 }, { Date: 1646913600000, Open: 356.2, High: 367.02, Low: 353.3, Close: 356.77, Volume: 4807800 }, { Date: 1647000000000, Open: 361.19, High: 363.36, Low: 340, Close: 340.32, Volume: 4815500 }, { Date: 1647259200000, Open: 338.72, High: 341.32, Low: 329.82, Close: 331.01, Volume: 5907800 }, { Date: 1647345600000, Open: 335.1, High: 345.36, Low: 332.36, Close: 343.75, Volume: 5460600 }, { Date: 1647432000000, Open: 348.2, High: 359.99, Low: 343.06, Close: 357.53, Volume: 6982500 }, { Date: 1647518400000, Open: 359.7, High: 373.31, Low: 354.88, Close: 371.4, Volume: 5818300 }, { Date: 1647604800000, Open: 372, High: 381.8, Low: 368.47, Close: 380.6, Volume: 8309200 }, { Date: 1647864000000, Open: 378.02, High: 381.82, Low: 368.94, Close: 374.59, Volume: 4866500 }, { Date: 1647950400000, Open: 371.14, High: 386.66, Low: 366.76, Close: 382.92, Volume: 4242800 }, { Date: 1648036800000, Open: 379.77, High: 382.46, Low: 374.49, Close: 374.49, Volume: 3729000 }, { Date: 1648123200000, Open: 379.76, High: 379.76, Low: 368.9, Close: 375.71, Volume: 3888500 }, { Date: 1648209600000, Open: 377.07, High: 377.64, Low: 366.43, Close: 373.85, Volume: 3574500 }, { Date: 1648468800000, Open: 375.23, High: 380.28, Low: 366.73, Close: 378.51, Volume: 4323400 }, { Date: 1648555200000, Open: 384.39, High: 396.5, Low: 380.33, Close: 391.82, Volume: 5880700 }, { Date: 1648641600000, Open: 389.55, High: 392.7, Low: 378.63, Close: 381.47, Volume: 4023300 }];
var tooltip = am5.Tooltip.new(root, { getStrokeFromSprite: false, getFillFromSprite: false});
tooltip.get("background").setAll({ strokeOpacity: 1, stroke: am5.color(0x000000), fillOpacity: 1, fill: am5.color(0xffffff)});
function makeEvent(date, letter, color, description) { var dataItem = dateAxis.createAxisRange(dateAxis.makeDataItem({ value: date })); var grid = dataItem.get("grid"); if (grid) { grid.setAll({ visible: true, strokeOpacity: 0.2, strokeDasharray: [3, 3] }); }
var bullet = am5.Container.new(root, { y: -100 });
var circle = bullet.children.push( am5.Circle.new(root, { radius: 10, stroke: color, fill: am5.color(0xffffff), tooltipText: description, tooltip: tooltip, tooltipY: 0 }) );
var label = bullet.children.push( am5.Label.new(root, { text: letter, centerX: am5.p50, centerY: am5.p50 }) );
dataItem.set( "bullet", am5xy.AxisBullet.new(root, { location: 0, stacked: true, sprite: bullet }) );}
makeEvent(1619006400000, "S", am5.color(0xff0000), "Split 4:1");makeEvent(1619006400000, "D", am5.color(0x00ff00), "Dividends paid");makeEvent(1634212800000, "D", am5.color(0x00ff00), "Dividends paid");
// set data to all seriesvalueSeries.data.setAll(data);volumeSeries.data.setAll(data);sbSeries.data.setAll(data);<div id="chartcontrols"></div><div id="chartdiv"></div>body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";}
#chartcontrols { height: auto; padding: 5px 5px 0 16px; max-width: 100%;}
#chartdiv { width: 100%; height: 600px; max-width: 100%;}watermarks-on-a-stockchartIn a map chart
Section titled “In a map chart”On charts that do not have a plot container, we can just push our watermark elements as children of the chart itself.
The following code will add watermarks to a map chart:
let copyright = chart.children.push(am5.Label.new(root, { text: "Copyright amCharts", x: 10, y: am5.p100, centerY: am5.p100, dy: -10}));
let logo = chart.children.push(am5.Picture.new(root, { src: "https://assets.codepen.io/t-160/amcharts_light.svg", width: 100, x: am5.p100, centerX: am5.p100, dx: -10, y: am5.p100, centerY: am5.p100}));var copyright = chart.children.push(am5.Label.new(root, { text: "Copyright amCharts", x: 10, y: am5.p100, centerY: am5.p100, dy: -10}));
var logo = chart.children.push(am5.Picture.new(root, { src: "https://assets.codepen.io/t-160/amcharts_light.svg", width: 100, x: am5.p100, centerX: am5.p100, dx: -10, y: am5.p100, centerY: am5.p100}));/** * --------------------------------------- * This demo was created using amCharts 5. * * For more information visit: * https://www.amcharts.com/ * * Documentation is available at: * https://www.amcharts.com/docs/v5/ * --------------------------------------- */
// Create root and chartvar root = am5.Root.new("chartdiv");
// Set themesroot.setThemes([am5themes_Animated.new(root)]);
var chart = root.container.children.push( am5map.MapChart.new(root, { panX: "rotateX", projection: am5map.geoNaturalEarth1() }));
// Create polygon seriesvar polygonSeries = chart.series.push( am5map.MapPolygonSeries.new(root, { geoJSON: am5geodata_worldLow, exclude: ["AQ"] }));
polygonSeries.mapPolygons.template.setAll({ tooltipText: "{name}", interactive: true});
polygonSeries.mapPolygons.template.states.create("hover", { fill: am5.color(0x677935)});
// Adding watermarksvar copyright = chart.children.push( am5.Label.new(root, { text: "Copyright amCharts", x: 10, y: am5.p100, centerY: am5.p100, dy: -10 }));
var logo = chart.children.push( am5.Picture.new(root, { src: "https://docs.amcharts.com/assets/amcharts_light.svg", width: 100, x: am5.p100, centerX: am5.p100, dx: -10, y: am5.p100, centerY: am5.p100 }));<div id="chartdiv"></div>body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";}
#chartdiv { width: 100%; height: 95vh;}{ "type": "MapChart", "settings": { "panX": "rotateX", "projectionName": "geoNaturalEarth1" }, "properties": { "series": [ "#series-0" ] }, "children": [ { "type": "Label", "settings": { "text": "Copyright amCharts", "x": 10, "y": { "type": "Percent", "value": 100 }, "centerY": { "type": "Percent", "value": 100 }, "dy": -10 }, "index": 2 }, { "type": "Picture", "settings": { "src": "https://docs.amcharts.com/assets/amcharts_light.svg", "width": 100, "x": { "type": "Percent", "value": 100 }, "centerX": { "type": "Percent", "value": 100 }, "dx": -10, "y": { "type": "Percent", "value": 100 }, "centerY": { "type": "Percent", "value": 100 } } } ], "refs": [ { "data-0": [] }, { "series-0": { "type": "MapPolygonSeries", "settings": { "geoJSON": "am5geodata_worldLow", "exclude": [ "AQ" ] }, "properties": { "mapPolygons": { "properties": { "template": { "settings": { "tooltipText": "{name}", "interactive": true }, "states": [ { "key": "hover", "settings": { "fill": { "type": "Color", "value": "#677935" } } } ] } } } } } } ]}watermarks-on-a-mapchartPositioning watermarks
Section titled “Positioning watermarks”Watermark position withing the parent container can be controlled via several settings:
| Setting | Comment |
|---|---|
x and y |
Horizontal and vertical coordinates. Can be either absolute pixel value (e.g. 50, 0, -10, etc.), or relative (e.g. am5.percent(50), am5.p100, etc.). Relative values are calculated based on width or height of the container, e.g. plot area. |
centerX and centerY |
Which horizontal (centerX) or vertical (centerY) position within the element to consider a center when positioning it. Can be either absolute pixel value (e.g. 50, 0, -10, etc.), or relative (e.g. am5.percent(50), am5.p100, etc.). Relative values are calculated based on width or height of the element itself. |
dx and dy |
Adjustment of the position of the element. Accepts only absolute pixel values. Positive value will shift the element right/down. Negative ones will shift the element left/up. |