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
Copy to CodePen
Apply
Reset
$(function() { $("#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: function(annotation, container) { var data = annotation.data; var 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>"]; var 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, function(data) { return { argument: data.name, data: data }; }) }); }); var 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/20.2.4/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/20.2.4/css/dx.light.css" /> <script src="https://cdn3.devexpress.com/jslib/20.2.4/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; }
var 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 }];