- Positioning
- Data label template
- Connector line
- Text mapping
- Format
- Customization
- Using textRender event
- Using template
Contact Support
Data Label in Vue 3D Circular Chart component
13 Jun 202424 minutes to read
A data label refers to a label associated with specific data points. It can be added to a 3D Circular Chart series by enabling the visible
option in the dataLabel
property. By default, the labels will arrange themselves smartly to avoid overlapping.
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import { CircularChart3DComponent as EjsCircularchart3d, CircularChart3DSeriesCollectionDirective as ECircularchart3dSeriesCollection, CircularChart3DSeriesDirective as ECircularchart3dSeries, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
const seriesData = [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13.5 },
{ x: 'Mar', y: 7 },
{ x: 'Apr', y: 13.5 }
];
const tilt = -45;
const legendSettings = {
visible: false
};
const dataLabel = {
visible: true
};
provide('circularchart3d', [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]);
</script>
<style>
#container {
height: 350px;
}
</style>
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y' :dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script>
import { CircularChart3DComponent, CircularChart3DSeriesCollectionDirective, CircularChart3DSeriesDirective, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
export default {
name: "App",
components: {
'ejs-circularchart3d': CircularChart3DComponent,
'e-circularchart3d-series-collection': CircularChart3DSeriesCollectionDirective,
'e-circularchart3d-series': CircularChart3DSeriesDirective
},
data() {
return {
seriesData: [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13.5 },
{ x: 'Mar', y: 7 },
{ x: 'Apr', y: 13.5 }
],
tilt: -45,
legendSettings: {
visible: false
},
dataLabel: {
visible: true
}
};
},
provide: {
circularchart3d: [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>
To use the data label feature, inject the
CircularChartDataLabel3D
into theprovide
.
Positioning
Using the position
property, we can place the data label either inside
or outside
the 3D Circular Chart.
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import { CircularChart3DComponent as EjsCircularchart3d, CircularChart3DSeriesCollectionDirective as ECircularchart3dSeriesCollection, CircularChart3DSeriesDirective as ECircularchart3dSeries, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
const seriesData = [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13 },
{ x: 'Mar', y: 17 },
{ x: 'Apr', y: 13.5 }
];
const tilt = -45;
const legendSettings = {
visible: false
};
const dataLabel = {
visible: true,
position: 'Outside'
};
provide('circularchart3d', [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]);
</script>
<style>
#container {
height: 350px;
}
</style>
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y' :dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script>
import { CircularChart3DComponent, CircularChart3DSeriesCollectionDirective, CircularChart3DSeriesDirective, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
export default {
name: "App",
components: {
'ejs-circularchart3d': CircularChart3DComponent,
'e-circularchart3d-series-collection': CircularChart3DSeriesCollectionDirective,
'e-circularchart3d-series': CircularChart3DSeriesDirective
},
data() {
return {
seriesData: [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13 },
{ x: 'Mar', y: 17 },
{ x: 'Apr', y: 13.5 }
],
tilt: -45,
legendSettings: {
visible: false
},
dataLabel: {
visible: true,
position: 'Outside'
}
};
},
provide: {
circularchart3d: [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>
Data label template
The label content can be formatted using the template option. Inside the template, placeholder text ${point.x}
and ${point.y
can be added to display the corresponding data point’s x & y value. The data label template can be set using the template
property.
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import { CircularChart3DComponent as EjsCircularchart3d, CircularChart3DSeriesCollectionDirective as ECircularchart3dSeriesCollection, CircularChart3DSeriesDirective as ECircularchart3dSeries, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
const seriesData = [
{ x: 'Jan', y: 13, text: 'Jan: 13' },
{ x: 'Feb', y: 13, text: 'Feb: 13' },
{ x: 'Mar', y: 17, text: 'Mar: 17' },
{ x: 'Apr', y: 13.5, text: 'Apr: 13.5' }
];
const tilt = -45;
const legendSettings = {
visible: false
};
const dataLabel = {
visible: true,
name: 'text',
template: "<div id='templateWrap' style='background-color:#bd18f9;border-radius: 3px; float: right;padding: 2px;line-height: 20px;text-align: center;'>" + "<img src='https://ej2.syncfusion.com/demos/src/chart/images/sunny.png' />" + "<div style='color:white; font-family:Roboto; font-style: medium; fontp-size:14px;float: right;padding: 2px;line-height: 20px;text-align: center;padding-right:6px'><span>${point.y}</span></div></div>"
};
provide('circularchart3d', [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]);
</script>
<style>
#container {
height: 350px;
}
</style>
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script>
import { CircularChart3DComponent, CircularChart3DSeriesCollectionDirective, CircularChart3DSeriesDirective, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
export default {
name: "App",
components: {
'ejs-circularchart3d': CircularChart3DComponent,
'e-circularchart3d-series-collection': CircularChart3DSeriesCollectionDirective,
'e-circularchart3d-series': CircularChart3DSeriesDirective
},
data() {
return {
seriesData: [
{ x: 'Jan', y: 13, text: 'Jan: 13' },
{ x: 'Feb', y: 13, text: 'Feb: 13' },
{ x: 'Mar', y: 17, text: 'Mar: 17' },
{ x: 'Apr', y: 13.5, text: 'Apr: 13.5' }
],
tilt: -45,
legendSettings: {
visible: false
},
dataLabel: {
visible: true,
name: 'text',
template: "<div id='templateWrap' style='background-color:#bd18f9;border-radius: 3px; float: right;padding: 2px;line-height: 20px;text-align: center;'>" + "<img src='https://ej2.syncfusion.com/demos/src/chart/images/sunny.png' />" + "<div style='color:white; font-family:Roboto; font-style: medium; fontp-size:14px;float: right;padding: 2px;line-height: 20px;text-align: center;padding-right:6px'><span>${point.y}</span></div></div>"
}
};
},
provide: {
circularchart3d: [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>
Connector line
The connector line will be visible when the data label is placed outside
the chart. It can be customized using properties such as color
, width
, length
, and dashArray
within the connectorStyle
property.
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import { CircularChart3DComponent as EjsCircularchart3d, CircularChart3DSeriesCollectionDirective as ECircularchart3dSeriesCollection, CircularChart3DSeriesDirective as ECircularchart3dSeries, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
const seriesData = [
{ x: 'Jan', y: 13, text: 'Jan: 13' },
{ x: 'Feb', y: 13, text: 'Feb: 13' },
{ x: 'Mar', y: 17, text: 'Mar: 17' },
{ x: 'Apr', y: 13.5, text: 'Apr: 13.5' }
];
const tilt = -45;
const legendSettings = {
visible: false
};
const dataLabel = {
visible: true,
name: 'text',
position: 'Outside',
connectorStyle: {
length: '50px',
width: 2,
color: '#f4429e',
dashArray: '5,3'
}
};
provide('circularchart3d', [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]);
</script>
<style>
#container {
height: 350px;
}
</style>
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y' :dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script>
import { CircularChart3DComponent, CircularChart3DSeriesCollectionDirective, CircularChart3DSeriesDirective, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
export default {
name: "App",
components: {
'ejs-circularchart3d': CircularChart3DComponent,
'e-circularchart3d-series-collection': CircularChart3DSeriesCollectionDirective,
'e-circularchart3d-series': CircularChart3DSeriesDirective
},
data() {
return {
seriesData: [
{ x: 'Jan', y: 13, text: 'Jan: 13' },
{ x: 'Feb', y: 13, text: 'Feb: 13' },
{ x: 'Mar', y: 17, text: 'Mar: 17' },
{ x: 'Apr', y: 13.5, text: 'Apr: 13.5' }
],
tilt: -45,
legendSettings: {
visible: false
},
dataLabel: {
visible: true,
name: 'text',
position: 'Outside',
connectorStyle: {
length: '50px',
width: 2,
color: '#f4429e',
dashArray: '5,3'
}
}
};
},
provide: {
circularchart3d: [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>
Text mapping
Text from the data source can be mapped using the name
property within the data label.
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import { CircularChart3DComponent as EjsCircularchart3d, CircularChart3DSeriesCollectionDirective as ECircularchart3dSeriesCollection, CircularChart3DSeriesDirective as ECircularchart3dSeries, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
const seriesData = [
{ x: 'Jan', y: 3, text: 'January' },
{ x: 'Feb', y: 3.5, text: 'February' },
{ x: 'Mar', y: 7, text: 'March' },
{ x: 'Apr', y: 13.5, text: 'April' }
];
const tilt = -45;
const legendSettings = {
visible: false
};
const dataLabel = {
visible: true,
name: 'text'
};
provide('circularchart3d', [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]);
</script>
<style>
#container {
height: 350px;
}
</style>
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script>
import { CircularChart3DComponent, CircularChart3DSeriesCollectionDirective, CircularChart3DSeriesDirective, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
export default {
name: "App",
components: {
'ejs-circularchart3d': CircularChart3DComponent,
'e-circularchart3d-series-collection': CircularChart3DSeriesCollectionDirective,
'e-circularchart3d-series': CircularChart3DSeriesDirective
},
data() {
return {
seriesData: [
{ x: 'Jan', y: 3, text: 'January' },
{ x: 'Feb', y: 3.5, text: 'February' },
{ x: 'Mar', y: 7, text: 'March' },
{ x: 'Apr', y: 13.5, text: 'April' }
],
tilt: -45,
legendSettings: {
visible: false
},
dataLabel: {
visible: true,
name: 'text'
}
};
},
provide: {
circularchart3d: [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>
Format
The data label for the 3D Circular Chart can be formatted using the format
property. You can utilize global formatting options such as ‘n’, ‘p’, and ‘c’.
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import { CircularChart3DComponent as EjsCircularchart3d, CircularChart3DSeriesCollectionDirective as ECircularchart3dSeriesCollection, CircularChart3DSeriesDirective as ECircularchart3dSeries, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
const seriesData = [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13 },
{ x: 'Mar', y: 7 },
{ x: 'Apr', y: 13 }
];
const tilt = -45;
const legendSettings = {
visible: false
};
const dataLabel = {
visible: true,
format: 'n2'
};
provide('circularchart3d', [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]);
</script>
<style>
#container {
height: 350px;
}
</style>
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script>
import { CircularChart3DComponent, CircularChart3DSeriesCollectionDirective, CircularChart3DSeriesDirective, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
export default {
name: "App",
components: {
'ejs-circularchart3d': CircularChart3DComponent,
'e-circularchart3d-series-collection': CircularChart3DSeriesCollectionDirective,
'e-circularchart3d-series': CircularChart3DSeriesDirective
},
data() {
return {
seriesData: [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13 },
{ x: 'Mar', y: 7 },
{ x: 'Apr', y: 13 }
],
tilt: -45,
legendSettings: {
visible: false
},
dataLabel: {
visible: true,
format: 'n2'
}
};
},
provide: {
circularchart3d: [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>
Value | Format | Resultant Value | Description |
---|---|---|---|
1000 | n1 | 1000.0 | The number is rounded to 1 decimal place. |
1000 | n2 | 1000.00 | The number is rounded to 2 decimal places. |
1000 | n3 | 1000.000 | The number is rounded to 3 decimal place. |
0.01 | p1 | 1.0% | The number is converted to percentage with 1 decimal place. |
0.01 | p2 | 1.00% | The number is converted to percentage with 2 decimal place. |
0.01 | p3 | 1.000% | The number is converted to percentage with 3 decimal place. |
1000 | c1 | $1000.0 | The currency symbol is appended to number and number is rounded to 1 decimal place. |
1000 | c2 | $1000.00 | The currency symbol is appended to number and number is rounded to 2 decimal place. |
Customization
Individual text for the data points in the 3D Circular Chart can be customized using the textRender
event.
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings' :textRender='textRender'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import { CircularChart3DComponent as EjsCircularchart3d, CircularChart3DSeriesCollectionDirective as ECircularchart3dSeriesCollection, CircularChart3DSeriesDirective as ECircularchart3dSeries, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
const seriesData = [
{ x: 'Jan', y: 13, text: 'Jan: 13' },
{ x: 'Feb', y: 13, text: 'Feb: 13' },
{ x: 'Mar', y: 17, text: 'Mar: 17' },
{ x: 'Apr', y: 13.5, text: 'Apr: 13.5' }
];
const tilt = -45;
const legendSettings = {
visible: false
};
const dataLabel = {
visible: true,
name: 'text',
position: 'Outside'
};
provide('circularchart3d', [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]);
const textRender = (args) => {
if (args.text.indexOf('Mar') > -1) {
args.color = 'red';
args.border.width = 1;
}
}
</script>
<style>
#container {
height: 350px;
}
</style>
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings' :textRender='textRender'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script>
import { CircularChart3DComponent, CircularChart3DSeriesCollectionDirective, CircularChart3DSeriesDirective, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
export default {
name: "App",
components: {
'ejs-circularchart3d': CircularChart3DComponent,
'e-circularchart3d-series-collection': CircularChart3DSeriesCollectionDirective,
'e-circularchart3d-series': CircularChart3DSeriesDirective
},
data() {
return {
seriesData: [
{ x: 'Jan', y: 13, text: 'Jan: 13' },
{ x: 'Feb', y: 13, text: 'Feb: 13' },
{ x: 'Mar', y: 17, text: 'Mar: 17' },
{ x: 'Apr', y: 13.5, text: 'Apr: 13.5' }
],
tilt: -45,
legendSettings: {
visible: false
},
dataLabel: {
visible: true,
name: 'text',
position: 'Outside'
}
};
},
provide: {
circularchart3d: [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]
},
methods: {
textRender: function (args) {
if (args.text.indexOf('Mar') > -1) {
args.color = 'red';
args.border.width = 1;
}
}
}
};
</script>
<style>
#container {
height: 350px;
}
</style>
Using textRender event
You can customize the data label of a pie chart using the textRender
event as follows to show the percentage.
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings' :textRender='textRender'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import { CircularChart3DComponent as EjsCircularchart3d, CircularChart3DSeriesCollectionDirective as ECircularchart3dSeriesCollection, CircularChart3DSeriesDirective as ECircularchart3dSeries, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
const seriesData = [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13.5 },
{ x: 'Mar', y: 7 },
{ x: 'Apr', y: 13.5 }
];
const tilt = -45;
const legendSettings = {
visible: false
};
const dataLabel = {
visible: true
};
provide('circularchart3d', [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]);
const textRender = (args) => {
args.text = args.point.percentage + "%";
};
</script>
<style>
#container {
height: 350px;
}
</style>
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings' :textRender='textRender'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script>
import { CircularChart3DComponent, CircularChart3DSeriesCollectionDirective, CircularChart3DSeriesDirective, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
export default {
name: "App",
components: {
'ejs-circularchart3d': CircularChart3DComponent,
'e-circularchart3d-series-collection': CircularChart3DSeriesCollectionDirective,
'e-circularchart3d-series': CircularChart3DSeriesDirective
},
data() {
return {
seriesData: [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13.5 },
{ x: 'Mar', y: 7 },
{ x: 'Apr', y: 13.5 }
],
tilt: -45,
legendSettings: {
visible: false
},
dataLabel: {
visible: true
}
};
},
provide: {
circularchart3d: [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]
},
methods: {
textRender: function (args) {
args.text = args.point.percentage + "%";
}
}
};
</script>
<style>
#container {
height: 350px;
}
</style>
Using template
You can display the percentage values in the data label of a pie chart using the template
option.
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import { CircularChart3DComponent as EjsCircularchart3d, CircularChart3DSeriesCollectionDirective as ECircularchart3dSeriesCollection, CircularChart3DSeriesDirective as ECircularchart3dSeries, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
const seriesData = [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13.5 },
{ x: 'Mar', y: 7 },
{ x: 'Apr', y: 13.5 }
];
const tilt = -45;
const legendSettings = {
visible: false
};
const dataLabel = {
visible: true,
template: "<div id='dataLabelTemplate'>${point.percentage}%</div>"
};
provide('circularchart3d', [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]);
</script>
<style>
#container {
height: 350px;
}
</style>
<template>
<div id="app">
<ejs-circularchart3d id="container" :tilt='tilt' :legendSettings='legendSettings'>
<e-circularchart3d-series-collection>
<e-circularchart3d-series :dataSource='seriesData' xName='x' yName='y'
:dataLabel='dataLabel'></e-circularchart3d-series>
</e-circularchart3d-series-collection>
</ejs-circularchart3d>
</div>
</template>
<script>
import { CircularChart3DComponent, CircularChart3DSeriesCollectionDirective, CircularChart3DSeriesDirective, PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D } from "@syncfusion/ej2-vue-charts";
export default {
name: "App",
components: {
'ejs-circularchart3d': CircularChart3DComponent,
'e-circularchart3d-series-collection': CircularChart3DSeriesCollectionDirective,
'e-circularchart3d-series': CircularChart3DSeriesDirective
},
data() {
return {
seriesData: [
{ x: 'Jan', y: 13 },
{ x: 'Feb', y: 13.5 },
{ x: 'Mar', y: 7 },
{ x: 'Apr', y: 13.5 }
],
tilt: -45,
legendSettings: {
visible: false
},
dataLabel: {
visible: true,
template: "<div id='dataLabelTemplate'>${point.percentage}%</div>"
}
};
},
provide: {
circularchart3d: [PieSeries3D, CircularChartDataLabel3D, CircularChartLegend3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>