Axis customization in Vue 3D Chart component
13 Jun 202424 minutes to read
Title
The title for the axis can be added by using the title property. It helps to provide quick information to the user about the data plotted in the axis. Title style can be customized using titleStyle property of the axis.
<template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import {
Chart3DComponent as EjsChart3d,
Chart3DSeriesCollectionDirective as EChart3dSeriesCollection,
Chart3DSeriesDirective as EChart3dSeries,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
const seriesData = [
{ country: 'USA', gold: 50 },
{ country: 'China', gold: 40 },
{ country: 'Japan', gold: 70 },
{ country: 'Australia', gold: 60 },
{ country: 'France', gold: 50 },
{ country: 'Germany', gold: 40 },
{ country: 'Italy', gold: 40 },
{ country: 'Sweden', gold: 30 }
];
const primaryXAxis = {
valueType: 'Category',
title: 'Countries'
};
const primaryYAxis = {
title: 'Temp',
labelFormat: '{value}°C',
interval: 10
};
provide('chart3d', [ColumnSeries3D, Category3D]);
</script>
<style>
#container {
height: 350px;
}
</style><template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script>
import {
Chart3DComponent,
Chart3DSeriesCollectionDirective,
Chart3DSeriesDirective,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
export default {
name: "App",
components: {
'ejs-chart3d': Chart3DComponent,
'e-chart3d-series-collection': Chart3DSeriesCollectionDirective,
'e-chart3d-series': Chart3DSeriesDirective
},
data() {
return {
seriesData: [
{ country: 'USA', gold: 50 },
{ country: 'China', gold: 40 },
{ country: 'Japan', gold: 70 },
{ country: 'Australia', gold: 60 },
{ country: 'France', gold: 50 },
{ country: 'Germany', gold: 40 },
{ country: 'Italy', gold: 40 },
{ country: 'Sweden', gold: 30 }
],
primaryXAxis: {
valueType: 'Category',
title: 'Countries'
},
primaryYAxis: {
title: 'Temp',
labelFormat: '{value}°C',
interval: 10
},
};
},
provide: {
chart3d: [ColumnSeries3D, Category3D]
},
};
</script>
<style>
#container {
height: 350px;
}
</style>Title rotation
The title can be rotated from 0 to 360 degree by using the titleRotation property.
<template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import {
Chart3DComponent as EjsChart3d,
Chart3DSeriesCollectionDirective as EChart3dSeriesCollection,
Chart3DSeriesDirective as EChart3dSeries,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
const seriesData = [
{ country: 'USA', gold: 50 },
{ country: 'China', gold: 40 },
{ country: 'Japan', gold: 70 },
{ country: 'Australia', gold: 60 },
{ country: 'France', gold: 50 },
{ country: 'Germany', gold: 40 },
{ country: 'Italy', gold: 40 },
{ country: 'Sweden', gold: 30 }
];
const primaryXAxis = {
valueType: 'Category',
title: 'Countries',
titleRotation: 90
};
const primaryYAxis = {
title: 'Temp',
titleRotation: 90,
labelFormat: '{value}°C',
interval: 10
};
provide('chart3d', [ColumnSeries3D, Category3D]);
</script>
<style>
#container {
height: 350px;
}
</style><template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script>
import {
Chart3DComponent,
Chart3DSeriesCollectionDirective,
Chart3DSeriesDirective,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
export default {
name: "App",
components: {
'ejs-chart3d': Chart3DComponent,
'e-chart3d-series-collection': Chart3DSeriesCollectionDirective,
'e-chart3d-series': Chart3DSeriesDirective
},
data() {
return {
seriesData: [
{ country: 'USA', gold: 50 },
{ country: 'China', gold: 40 },
{ country: 'Japan', gold: 70 },
{ country: 'Australia', gold: 60 },
{ country: 'France', gold: 50 },
{ country: 'Germany', gold: 40 },
{ country: 'Italy', gold: 40 },
{ country: 'Sweden', gold: 30 }
],
primaryXAxis: {
valueType: 'Category',
title: 'Countries',
titleRotation: 90
},
primaryYAxis: {
title: 'Temp',
titleRotation: 90,
labelFormat: '{value}°C',
interval: 10
}
};
},
provide: {
chart3d: [ColumnSeries3D, Category3D]
},
};
</script>
<style>
#container {
height: 350px;
}
</style>Tick lines customization
The width, color and height of the minor and major tick lines can be customized by using the majorTickLines and minorTickLines properties in the axis.
<template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import {
Chart3DComponent as EjsChart3d,
Chart3DSeriesCollectionDirective as EChart3dSeriesCollection,
Chart3DSeriesDirective as EChart3dSeries,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
const seriesData = [
{ country: 'USA', gold: 50 },
{ country: 'China', gold: 40 },
{ country: 'Japan', gold: 70 },
{ country: 'Australia', gold: 60 },
{ country: 'France', gold: 50 },
{ country: 'Germany', gold: 40 },
{ country: 'Italy', gold: 40 },
{ country: 'Sweden', gold: 30 }
]
const primaryXAxis = {
valueType: 'Category',
majorTickLines: { width: 2, color: 'red', height: 10 }
}
const primaryYAxis = {
majorTickLines: { width: 2, color: 'red', height: 10 },
labelFormat: '{value}°C',
interval: 10
}
provide('chart3d', [ColumnSeries3D, Category3D]);
</script>
<style>
#container {
height: 350px;
}
</style><template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script>
import {
Chart3DComponent,
Chart3DSeriesCollectionDirective,
Chart3DSeriesDirective,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
export default {
name: "App",
components: {
'ejs-chart3d': Chart3DComponent,
'e-chart3d-series-collection': Chart3DSeriesCollectionDirective,
'e-chart3d-series': Chart3DSeriesDirective
},
data() {
return {
seriesData: [
{ country: 'USA', gold: 50 },
{ country: 'China', gold: 40 },
{ country: 'Japan', gold: 70 },
{ country: 'Australia', gold: 60 },
{ country: 'France', gold: 50 },
{ country: 'Germany', gold: 40 },
{ country: 'Italy', gold: 40 },
{ country: 'Sweden', gold: 30 }
],
primaryXAxis: {
valueType: 'Category',
majorTickLines: { width: 2, color: 'red', height: 10 }
},
primaryYAxis: {
majorTickLines: { width: 2, color: 'red', height: 10 },
labelFormat: '{value}°C',
interval: 10
}
};
},
provide: {
chart3d: [ColumnSeries3D, Category3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>Grid lines customization
The width, and color of the minor and major grid lines can be customized by using the majorGridLines and minorGridLines properties in the axis.
<template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import {
Chart3DComponent as EjsChart3d,
Chart3DSeriesCollectionDirective as EChart3dSeriesCollection,
Chart3DSeriesDirective as EChart3dSeries,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
const seriesData = [
{ country: 'USA', gold: 50 },
{ country: 'China', gold: 40 },
{ country: 'Japan', gold: 70 },
{ country: 'Australia', gold: 60 },
{ country: 'France', gold: 50 },
{ country: 'Germany', gold: 40 },
{ country: 'Italy', gold: 40 },
{ country: 'Sweden', gold: 30 }
];
const primaryXAxis = {
valueType: 'Category',
majorGridLines: {
color: 'blue',
width: 1
},
minorGridLines: {
color: 'red',
width: 0
}
};
const primaryYAxis = {
majorGridLines: {
color: 'blue',
width: 1
},
minorGridLines: {
color: 'red',
width: 0
},
labelFormat: '{value}°C',
interval: 10
};
provide('chart3d', [ColumnSeries3D, Category3D]);
</script>
<style>
#container {
height: 350px;
}
</style><template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script>
import {
Chart3DComponent,
Chart3DSeriesCollectionDirective,
Chart3DSeriesDirective,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
export default {
name: "App",
components: {
'ejs-chart3d': Chart3DComponent,
'e-chart3d-series-collection': Chart3DSeriesCollectionDirective,
'e-chart3d-series': Chart3DSeriesDirective
},
data() {
return {
seriesData: [
{ country: 'USA', gold: 50 },
{ country: 'China', gold: 40 },
{ country: 'Japan', gold: 70 },
{ country: 'Australia', gold: 60 },
{ country: 'France', gold: 50 },
{ country: 'Germany', gold: 40 },
{ country: 'Italy', gold: 40 },
{ country: 'Sweden', gold: 30 }
],
primaryXAxis: {
valueType: 'Category',
majorGridLines: {
color: 'blue',
width: 1
},
minorGridLines: {
color: 'red',
width: 0
}
},
primaryYAxis: {
majorGridLines: {
color: 'blue',
width: 1
},
minorGridLines: {
color: 'red',
width: 0
},
labelFormat: '{value}°C',
interval: 10
}
};
},
provide: {
chart3d: [ColumnSeries3D, Category3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>Multiple axis
In addition to primary X and Y axis, n number of axis can be added to the chart. Series can be associated with this axis, by mapping with axis’s unique name.
<template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis" :axes="axes">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
<e-chart3d-series :dataSource="seriesData" type="Line" xName="country" yName="siver" name="Sales"
yAxisName="yAxis">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import {
Chart3DComponent as EjsChart3d,
Chart3DSeriesCollectionDirective as EChart3dSeriesCollection,
Chart3DSeriesDirective as EChart3dSeries,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
const seriesData = [
{ country: 'USA', gold: 50, siver: 30 },
{ country: 'China', gold: 40, siver: 20 },
{ country: 'Japan', gold: 70, siver: 50 },
{ country: 'Australia', gold: 60, siver: 40 },
{ country: 'France', gold: 50, siver: 30 },
{ country: 'Germany', gold: 40, siver: 20 },
{ country: 'Italy', gold: 40, siver: 20 },
{ country: 'Sweden', gold: 30, siver: 10 }
];
const primaryXAxis = {
valueType: 'Category',
title: 'Countries'
};
const primaryYAxis = {
interval: 10
};
const axes = [
{
rowIndex: 0,
name: 'yAxis'
}
];
provide('chart3d', [ColumnSeries3D, Category3D]);
</script>
<style>
#container {
height: 350px;
}
</style><template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis" :axes="axes">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
<e-chart3d-series :dataSource="seriesData" type="Line" xName="country" yName="siver" name="Sales"
yAxisName="yAxis">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script>
import {
Chart3DComponent,
Chart3DSeriesCollectionDirective,
Chart3DSeriesDirective,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
export default {
name: "App",
components: {
'ejs-chart3d': Chart3DComponent,
'e-chart3d-series-collection': Chart3DSeriesCollectionDirective,
'e-chart3d-series': Chart3DSeriesDirective
},
data() {
return {
seriesData: [
{ country: 'USA', gold: 50, siver: 30 },
{ country: 'China', gold: 40, siver: 20 },
{ country: 'Japan', gold: 70, siver: 50 },
{ country: 'Australia', gold: 60, siver: 40 },
{ country: 'France', gold: 50, siver: 30 },
{ country: 'Germany', gold: 40, siver: 20 },
{ country: 'Italy', gold: 40, siver: 20 },
{ country: 'Sweden', gold: 30, siver: 10 }
],
primaryXAxis: {
valueType: 'Category',
title: 'Countries'
},
primaryYAxis: {
interval: 10
},
axes: [
{
rowIndex: 0,
name: 'yAxis'
}
],
};
},
provide: {
chart3d: [ColumnSeries3D, Category3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>Inversed axis
When an axis is inversed, highest value of the axis comes closer to origin and vice versa. To place an axis in inversed manner, set the isInversed property to true.
<template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import {
Chart3DComponent as EjsChart3d,
Chart3DSeriesCollectionDirective as EChart3dSeriesCollection,
Chart3DSeriesDirective as EChart3dSeries,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
const seriesData = [
{ country: 'USA', gold: 50, siver: 30 },
{ country: 'China', gold: 40, siver: 20 },
{ country: 'Japan', gold: 70, siver: 50 },
{ country: 'Australia', gold: 60, siver: 40 },
{ country: 'France', gold: 50, siver: 30 },
{ country: 'Germany', gold: 40, siver: 20 },
{ country: 'Italy', gold: 40, siver: 20 },
{ country: 'Sweden', gold: 30, siver: 10 }
];
const primaryXAxis = {
valueType: 'Category',
isInversed: true
};
const primaryYAxis = {
interval: 10,
isInversed: true
};
provide('chart3d', [ColumnSeries3D, Category3D]);
</script>
<style>
#container {
height: 350px;
}
</style><template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script>
import {
Chart3DComponent,
Chart3DSeriesCollectionDirective,
Chart3DSeriesDirective,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
export default {
name: "App",
components: {
'ejs-chart3d': Chart3DComponent,
'e-chart3d-series-collection': Chart3DSeriesCollectionDirective,
'e-chart3d-series': Chart3DSeriesDirective
},
data() {
return {
seriesData: [
{ country: 'USA', gold: 50, siver: 30 },
{ country: 'China', gold: 40, siver: 20 },
{ country: 'Japan', gold: 70, siver: 50 },
{ country: 'Australia', gold: 60, siver: 40 },
{ country: 'France', gold: 50, siver: 30 },
{ country: 'Germany', gold: 40, siver: 20 },
{ country: 'Italy', gold: 40, siver: 20 },
{ country: 'Sweden', gold: 30, siver: 10 }
],
primaryXAxis: {
valueType: 'Category',
isInversed: true
},
primaryYAxis: {
interval: 10,
isInversed: true
}
};
},
provide: {
chart3d: [ColumnSeries3D, Category3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>Opposed position
To place an axis opposite from its original position, set the opposedPosition property to true.
<template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script setup>
import { provide } from "vue";
import {
Chart3DComponent as EjsChart3d,
Chart3DSeriesCollectionDirective as EChart3dSeriesCollection,
Chart3DSeriesDirective as EChart3dSeries,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
const seriesData = [
{ country: 'USA', gold: 50, siver: 30 },
{ country: 'China', gold: 40, siver: 20 },
{ country: 'Japan', gold: 70, siver: 50 },
{ country: 'Australia', gold: 60, siver: 40 },
{ country: 'France', gold: 50, siver: 30 },
{ country: 'Germany', gold: 40, siver: 20 },
{ country: 'Italy', gold: 40, siver: 20 },
{ country: 'Sweden', gold: 30, siver: 10 }
];
const primaryXAxis = {
valueType: 'Category'
};
const primaryYAxis = {
interval: 10,
opposedPosition: true
};
provide('chart3d', [ColumnSeries3D, Category3D]);
</script>
<style>
#container {
height: 350px;
}
</style><template>
<div id="app">
<ejs-chart3d id="container" :primaryXAxis="primaryXAxis" :primaryYAxis="primaryYAxis">
<e-chart3d-series-collection>
<e-chart3d-series :dataSource="seriesData" type="Column" xName="country" yName="gold" name="Sales">
</e-chart3d-series>
</e-chart3d-series-collection>
</ejs-chart3d>
</div>
</template>
<script>
import {
Chart3DComponent,
Chart3DSeriesCollectionDirective,
Chart3DSeriesDirective,
ColumnSeries3D,
Category3D
} from '@syncfusion/ej2-vue-charts';
export default {
name: "App",
components: {
'ejs-chart3d': Chart3DComponent,
'e-chart3d-series-collection': Chart3DSeriesCollectionDirective,
'e-chart3d-series': Chart3DSeriesDirective
},
data() {
return {
seriesData: [
{ country: 'USA', gold: 50, siver: 30 },
{ country: 'China', gold: 40, siver: 20 },
{ country: 'Japan', gold: 70, siver: 50 },
{ country: 'Australia', gold: 60, siver: 40 },
{ country: 'France', gold: 50, siver: 30 },
{ country: 'Germany', gold: 40, siver: 20 },
{ country: 'Italy', gold: 40, siver: 20 },
{ country: 'Sweden', gold: 30, siver: 10 }
],
primaryXAxis: {
valueType: 'Category'
},
primaryYAxis: {
interval: 10,
opposedPosition: true
}
};
},
provide: {
chart3d: [ColumnSeries3D, Category3D]
}
};
</script>
<style>
#container {
height: 350px;
}
</style>