Your search did not match any results.
Bar Charts

Custom Annotations

To customize an annotation, declare the SVG markup in the annotation template. Inside the template, you can access the annotation being customized.

en.wikipedia.org
Backend API
Copy to CodePen
Apply
Reset
$(() => { $('#chart').dxChart({ dataSource: populationData, title: 'Top 5 Most Populated States in US', series: { type: 'bar', argumentField: 'name', valueField: 'population', name: 'Population', }, legend: { visible: false, }, commonAnnotationSettings: { type: 'custom', series: 'Population', allowDragging: true, template(annotation, container) { const { data } = annotation; const contentItems = ["<svg class='annotation'>", "<image href='../../../../images/flags/", data.name.replace(/\s/, '').toLowerCase(), ".svg' width='60' height='40' />", "<rect class='border' x='0' y='0' />", "<text x='70' y='25' class='state'/>", "<text x='0' y='60'>", "<tspan class='caption'>Capital:</tspan>", "<tspan class='capital' dx='5'/>", "<tspan dy='14' x='0' class='caption'>Population:</tspan>", "<tspan class='population' dx='5'/>", "<tspan dy='14' x='0' class='caption'>Area:</tspan>", "<tspan class='area' dx='5'/>", "<tspan dx='5'>km</tspan><tspan dy='-2' class='sup'>2</tspan>", '</text></svg>']; const content = $(contentItems.join('')); content.find('.state').text(annotation.argument); content.find('.capital').text(data.capital); content.find('.population').text(formatNumber(data.population)); content.find('.area').text(formatNumber(data.area)); content.appendTo(container); }, }, annotations: $.map(populationData, (data) => ({ argument: data.name, data, })), }); }); const formatNumber = new Intl.NumberFormat('en-US', { maximumFractionDigits: 0 }).format;
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/22.1.3/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/22.1.3/css/dx.light.css" /> <script src="https://cdn3.devexpress.com/jslib/22.1.3/js/dx.all.js"></script> <script src="data.js"></script> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="chart"></div> </div> </body> </html>
#chart { height: 440px; } .annotation { font-size: 12px; } .border { width: 60px; height: 40px; stroke: rgba(191, 191, 191, 0.25); stroke-width: 1px; fill: transparent; } .state { font-weight: 500; font-size: 14px; } .caption { font-weight: 500; } .sup { font-size: 0.8em; }
const populationData = [{ name: 'California', population: 38802500, capital: 'Sacramento', area: 423967, }, { name: 'Texas', population: 26956958, capital: 'Austin', area: 695662, }, { name: 'Florida', population: 19893297, capital: 'Tallahassee', area: 170312, }, { name: 'New York', population: 19746227, capital: 'Albany', area: 141297, }, { name: 'Illinois', population: 12880580, capital: 'Springfield', area: 149995, }];