Help us shape the 2021 DevExtreme Roadmap. Take our 5 minute survey.
Dismiss
Your search did not match any results.
Pie Charts

Pie with Small Values Grouped

Documentation

In this example, the PieChart UI component combines all values below the threshold property in one category called «others».

www.wikipedia.org
Copy to CodeSandBox
Apply
Reset
<template> <DxPieChart id="pie" :data-source="dataSource" palette="Bright" title="Top internet languages" > <DxSeries argument-field="language" value-field="percent" > <DxLabel :visible="true" :customize-text="formatLabel" format="fixedPoint" > <DxConnector :visible="true" :width="0.5" /> </DxLabel> <DxSmallValuesGrouping :threshold="4.5" mode="smallValueThreshold" /> </DxSeries> <DxLegend horizontal-alignment="center" vertical-alignment="bottom" /> <DxExport :enabled="true"/> </DxPieChart> </template> <script> import DxPieChart, { DxSeries, DxLabel, DxConnector, DxSmallValuesGrouping, DxLegend, DxExport } from 'devextreme-vue/pie-chart'; import { dataSource } from './data.js'; export default { components: { DxPieChart, DxSeries, DxLabel, DxConnector, DxSmallValuesGrouping, DxLegend, DxExport }, data() { return { dataSource }; }, methods: { formatLabel(pointInfo) { return `${pointInfo.argumentText}: ${pointInfo.valueText}%`; } } }; </script> <style> #pie { height: 440px; } </style>
import { createApp } from 'vue'; import App from './App.vue'; createApp(App).mount('#app');
<!DOCTYPE html> <html> <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" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/20.2.5/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/20.2.5/css/dx.light.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import('./index.js'); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"> </div> </div> </body> </html>
export const dataSource = [{ language: 'English', percent: 55.5 }, { language: 'Chinese', percent: 2.8 }, { language: 'Spanish', percent: 4.6 }, { language: 'Japanese', percent: 5.0 }, { language: 'Portuguese', percent: 2.5 }, { language: 'German', percent: 5.8 }, { language: 'French', percent: 4.0 }, { language: 'Russian', percent: 5.9 }, { language: 'Italian', percent: 1.9 }, { language: 'Polish', percent: 1.7 }, { language: 'Turkish', percent: 1.5 }, { language: 'Dutch', percent: 1.3 }, { language: 'Persian', percent: 0.9 }, { language: 'Arabic', percent: 0.8 }, { language: 'Korean', percent: 0.7 }, { language: 'Czech', percent: 0.7 }, { language: 'Swedish', percent: 0.5 }, { language: 'Vietnamese', percent: 0.4 }, { language: 'Indonesian', percent: 0.4 }, { language: 'Greek', percent: 0.4 }, { language: 'Romanian', percent: 0.4 }, { language: 'Hungarian', percent: 0.3 }, { language: 'Danish', percent: 0.3 }, { language: 'Thai', percent: 0.3 }, { language: 'Finnish', percent: 0.2 }, { language: 'Slovak', percent: 0.2 }, { language: 'Bulgarian', percent: 0.2 }, { language: 'Norwegian', percent: 0.2 }, { language: 'Hebrew', percent: 0.1 }, { language: 'Lithuanian', percent: 0.1 }, { language: 'Croatian', percent: 0.1 }, { language: 'Ukrainian', percent: 0.1 }, { language: 'Norwegian Bokmål', percent: 0.1 }, { language: 'Serbian', percent: 0.1 }, { language: 'Catalan', percent: 0.1 }, { language: 'Slovenian', percent: 0.1 }, { language: 'Latvian', percent: 0.1 }, { language: 'Estonian', percent: 0.1 }];
System.config({ transpiler: 'plugin-babel', meta: { '*.vue': { loader: 'vue-loader' }, 'devextreme/localization.js': { "esModule": true }, }, paths: { 'npm:': 'https://unpkg.com/' }, map: { 'vue': 'npm:vue@3.0.0/dist/vue.esm-browser.js', 'vue-loader': 'npm:dx-systemjs-vue-browser@1.0.15/index.js', 'mitt': 'npm:mitt/dist/mitt.umd.js', 'rrule': 'npm:rrule@2.6.6/dist/es5/rrule.js', 'luxon': 'npm:luxon@1.25.0/build/global/luxon.min.js', 'es6-object-assign': 'npm:es6-object-assign@1.1.0', 'devextreme': 'npm:devextreme@20.2.5', 'devextreme-vue': 'npm:devextreme-vue@20.2.5', 'jszip': 'npm:jszip@3.5.0/dist/jszip.min.js', 'devextreme-quill': 'npm:devextreme-quill@0.9.8/dist/dx-quill.min.js', 'devexpress-diagram': 'npm:devexpress-diagram@2.0.11/dist/dx-diagram.js', 'devexpress-gantt': 'npm:devexpress-gantt@2.0.18/dist/dx-gantt.js', 'preact': 'npm:preact@10.5.11/dist/preact.js', 'preact/hooks': 'npm:preact@10.5.11/hooks/dist/hooks.js', 'plugin-babel': 'npm:systemjs-plugin-babel@0.0.25/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0.0.25/systemjs-babel-browser.js' }, packages: { 'devextreme-vue': { main: 'index.js' }, 'devextreme': { defaultExtension: 'js' }, 'devextreme/events/utils': { main: 'index' }, 'devextreme/events': { main: 'index' }, 'es6-object-assign': { main: './index.js', defaultExtension: 'js' } }, babelOptions: { sourceMaps: false, stage0: true } });