DevExtreme v23.1 is now available.

Explore our newest features/capabilities and share your thoughts with us.

Your search did not match any results.
Charts

Tooltips: HTML Markup Support

To set the tooltip's content, specify the contentTemplate. Inside the template, you can identify the chart series point for which the tooltip is displayed and thus display information related to that point.

en.wikipedia.org
Backend API
Copy to CodePen
Apply
Reset
const DemoApp = angular.module('DemoApp', ['dx']); DemoApp.controller('DemoController', ($scope) => { $scope.pieChartOptions = { palette: 'bright', dataSource: states, title: 'Top 10 Most Populated States in US', series: { argumentField: 'name', valueField: 'population', }, export: { enabled: true, }, tooltip: { enabled: true, contentTemplate(info, $container) { const container = $container[0]; container.innerHTML = [`<div class='state-tooltip'><img src='../../../../images/flags/${ info.point.data.name.replace(/\s/, '')}.svg' />`, "<h4 class='state'></h4>", "<div class='capital'><span class='caption'>Capital</span>: </div>", "<div class='population'><span class='caption'>Population</span>: </div>", "<div><span class='caption'>Area</span>: ", "<span class='area-km'></span> km<sup>2</sup> (", "<span class='area-mi'></span> mi<sup>2</sup>)", '</div></div>', ].join(''); container.querySelector('.state').textContent = info.argument; container.querySelector('.capital').append(document.createTextNode(info.point.data.capital)); container.querySelector('.population').append(document.createTextNode(`${formatNumber(info.value)} people`)); container.querySelector('.area-km').textContent = formatNumber(info.point.data.area); container.querySelector('.area-mi').textContent = formatNumber(0.3861 * info.point.data.area); }, }, }; }); 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/23.1.5/css/dx.light.css" /> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script> <script>window.angular || document.write(decodeURIComponent('%3Cscript src="js/angular.min.js"%3E%3C/script%3E'))</script> <script src="https://cdn3.devexpress.com/jslib/23.1.5/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" ng-app="DemoApp" ng-controller="DemoController"> <div id="pie-chart" dx-pie-chart="pieChartOptions"></div> </div> </body> </html>
#pie-chart { height: 440px; } .state-tooltip { height: 90px; } .state-tooltip > img { width: 60px; height: 40px; display: block; margin: 0 5px 0 0; float: left; border: 1px solid rgba(191, 191, 191, 0.25); } .state-tooltip > h4 { line-height: 40px; font-size: 14px; margin-bottom: 5px; } .state-tooltip .caption { font-weight: 500; } .state-tooltip sup { font-size: 0.8em; vertical-align: super; line-height: 0; }
const states = [{ 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, }, { name: 'Pennsylvania', population: 12787209, capital: 'Harrisburg', area: 119280, }, { name: 'Ohio', population: 11594163, capital: 'Columbus', area: 116098, }, { name: 'Georgia', population: 10097343, capital: 'Atlanta', area: 153910, }, { name: 'North Carolina', population: 9943964, capital: 'Raleigh', area: 139391, }, { name: 'Michigan', population: 9909877, capital: 'Lansing', area: 250487, }];