Axis in Vue Linear gauge component
11 Jun 202424 minutes to read
Axis is used to indicate the numeric values in the linear scale. The Linear Gauge component can have any number of axes. The sub-elements of an axis are line, ticks, labels, ranges, and pointers.
Setting the start value and end value of the axis
The start value and end value for the Linear Gauge can be set using the minimum
and maximum
properties in the e-axis
respectively. By default, the start value of the axis is 0 and the end value of the axis is 100.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :minimum=20 :maximum=200></e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective as EAxes, AxisDirective as EAxis } from "@syncfusion/ej2-vue-lineargauge";
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :minimum=20 :maximum=200></e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxisDirective, AxesDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective,
},
data: function () {
return {
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Line Customization
The following properties in the line
can be used to customize the axis line in the Linear Gauge.
-
height
- To set the length of the axis line. -
width
- To set the thickness of the axis line. -
color
- To set the color of the axis line. -
offset
- To render the axis line with the specified distance from the Linear Gauge.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :line='line'></e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective as EAxes, AxisDirective as EAxis} from "@syncfusion/ej2-vue-lineargauge";
const line = {
height: 150,
width: 2,
color: '#4286f4',
offset: 2
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :line='line'></e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxisDirective, AxesDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective
},
data: function () {
return {
line: {
height: 150,
width: 2,
color: '#4286f4',
offset: 2
}
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Ticks Customization
Ticks are used to specify the interval in the axis. Ticks are of two types, major ticks and minor ticks. The following properties in the majorTicks
and minorTicks
can be used to customize the major ticks and minor ticks respectively.
-
height
- To set the length of the major and minor ticks in pixel values. -
color
- To set the color of the major and minor ticks of the Linear Gauge. -
width
- To set the thickness of the major and minor ticks in pixel values. -
interval
- To set the interval for the major ticks and minor ticks in the Linear Gauge.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis minimum= 20 maximum= 140 :majorTicks='majorTicks' :minorTicks='minorTicks'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective as EAxes, AxisDirective as EAxis } from "@syncfusion/ej2-vue-lineargauge";
const majorTicks = {
interval: 20,
color: "Orange"
};
const minorTicks = {
interval: 5,
color: 'red'
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis minimum= 20 maximum= 140 :majorTicks='majorTicks' :minorTicks='minorTicks'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxesDirective, AxisDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective
},
data: function () {
return {
majorTicks: {
interval: 20,
color: "Orange"
},
minorTicks: {
interval: 5,
color: 'red'
}
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Positioning the ticks
The minor and major ticks can be positioned by using the offset
and position
properties. The offset
is used to render the ticks with the specified distance from the axis. By default, the offset value is 0. The possible values of the position
property are Inside, Outside, Cross, and Auto. By default, the ticks will be placed inside the axis.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge>
<e-axes>
<e-axis minimum= 20 maximum= 140 :majorTicks='majorTicks' :minorTicks='minorTicks'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective as EAxes, AxisDirective as EAxis } from "@syncfusion/ej2-vue-lineargauge";
const majorTicks = {
interval: 20,
color: "Orange",
position: "Outside"
};
const minorTicks = {
interval: 5,
color: 'red',
position: "Cross"
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge>
<e-axes>
<e-axis minimum= 20 maximum= 140 :majorTicks='majorTicks' :minorTicks='minorTicks'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxisDirective, AxesDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective
},
data: function () {
return {
majorTicks: {
interval: 20,
color: "Orange",
position: "Outside"
},
minorTicks: {
interval: 5,
color: 'red',
position: "Cross"
}
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Labels Customization
The style of the labels can be customized using the following properties in the font
property in labelStyle
.
-
color
- To set the color of the axis label. -
fontFamily
- To set the font family of the axis label. -
fontStyle
- To set the font style of the axis label. -
fontWeight
- To set the font weight of the axis label. -
opacity
- To set the opacity of the axis label. -
size
- To set the size of the axis label.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :labelStyle='labelStyle2'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective as EAxes, AxisDirective as EAxis } from "@syncfusion/ej2-vue-lineargauge";
const labelStyle2 = {
font: {
color: 'red'
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :labelStyle='labelStyle2'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxesDirective, AxisDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective
},
data: function () {
return {
labelStyle2: {
font: {
color: 'red'
}
}
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Positioning the axis label
Labels can be positioned by using offset
and position
properties in the labelStyle
. The offset
defines the distance between the labels and ticks. By default, the offset value is 0. The possible values of the position
are Inside, Outside, Cross, and Auto. By default, the labels will be placed inside the axis.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :labelStyle='labelStyle2'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective as EAxes, AxisDirective as EAxis} from "@syncfusion/ej2-vue-lineargauge";
const labelStyle2 = {
position: "Cross"
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :labelStyle='labelStyle2'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxisDirective, AxesDirective} from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective
},
data: function () {
return {
labelStyle2: {
position: "Cross"
}
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Customizing the display of the last label
If the last label is not in the visible range, it will be hidden by default. The last label can be made visible by setting the showLastLabel
property as true in the e-axis
.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :showLastLabel=true maximum=115>
<e-pointers>
<e-pointer value=20 height=15 width=15 color='#757575' offset=30></e-pointer>
</e-pointers>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective as EAxes, AxisDirective as EAxis, PointerDirective as EPointers, PointerDirective as EPointer} from "@syncfusion/ej2-vue-lineargauge";
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :showLastLabel=true maximum=115>
<e-pointers>
<e-pointer value=20 height=15 width=15 color='#757575' offset=30></e-pointer>
</e-pointers>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxesDirective, AxisDirective, PointerDirective, PointersDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective,
"e-pointers":PointersDirective,
"e-pointer":PointerDirective
},
data: function () {
return {
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Label Format
Axis labels in the Linear Gauge control can be formatted using the format
property in labelStyle
. It is used to render the axis labels in a certain format or to add a user-defined unit in the label. It works with the help of placeholder like {value}°C, where value represents the axis value. For example, 20°C.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :labelStyle='labelStyle'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxisDirective as EAxis, AxesDirective as EAxes } from "@syncfusion/ej2-vue-lineargauge";
const labelStyle = {
format: "{value}°C"
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :labelStyle='labelStyle'>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxisDirective, AxesDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective
},
data: function () {
return {
labelStyle: {
format: "{value}°C"
}
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Displaying numeric format in labels
The numeric formats such as currency, percentage, and so on can be displayed in the labels of the Linear Gauge using the format
property in the Linear Gauge component. The following table describes the result of applying some commonly used label formats on numeric values.
Label Value | Label Format property value | Result | Description |
1000 | n1 | 1000.0 | The number is rounded to 1 decimal place. |
1000 | n2 | 1000.00 | The number is rounded to 2 decimal place. |
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 | $1,000.0 | The currency symbol is appended to number and number is rounded to 1 decimal place. |
1000 | c2 | $1,000.00 | The currency symbol is appended to number and number is rounded to 2 decimal place. |
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge :format='format'>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge } from "@syncfusion/ej2-vue-lineargauge";
const format = 'c';
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge :format='format'>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent
},
data: function () {
return {
format: 'c'
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Orientation
By default, the Linear Gauge is rendered vertically. To change its orientation, the orientation
property must be set to Horizontal.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge :orientation='orientation' :axes= 'axes' >
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge } from "@syncfusion/ej2-vue-lineargauge";
const orientation = "Horizontal";
const axes = [{
minimum: 20,
maximum: 140
}];
</script>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge :orientation='orientation' :axes= 'axes' >
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent
},
data: function () {
return {
orientation: "Horizontal",
axes: [{
minimum: 20,
maximum: 140,
}]
}
}
};
</script>
Inverted Axis
The axis of the Linear Gauge component can be inversed by setting the isInversed
property to true in the e-axis
.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis isInversed=true>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective as EAxes, AxisDirective as EAxis } from "@syncfusion/ej2-vue-lineargauge";
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis isInversed=true>
</e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxesDirective, AxisDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective
},
data: function () {
return {
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Opposed Axis
To place an axis opposite from its original position, opposedPosition
property in the e-axis
must be set as true.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis opposedPosition= true></e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective as EAxes, AxisDirective as EAxis } from "@syncfusion/ej2-vue-lineargauge";
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis opposedPosition= true></e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxesDirective, AxisDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective
},
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
Multiple Axes
Multiple axes can be added to the Linear Gauge by adding multiple e-axis
in the e-axes
and customization can be done with the e-axis
. Each axis can be customized separately as shown in the following example.
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :labelStyle='labelStyle'></e-axis>
<e-axis :opposedPosition='opposedPosition' :labelStyle='labelStyle1'></e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script setup>
import { LinearGaugeComponent as EjsLineargauge, AxisDirective as EAxis, AxesDirective as EAxes } from "@syncfusion/ej2-vue-lineargauge";
const labelStyle = {
format: '{value}°C'
};
const opposedPosition = true;
const labelStyle1 = {
format: '{value}°F'
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>
<template>
<div class="content-wrapper">
<div align='center'>
<ejs-lineargauge >
<e-axes>
<e-axis :labelStyle='labelStyle'></e-axis>
<e-axis :opposedPosition='opposedPosition' :labelStyle='labelStyle1'></e-axis>
</e-axes>
</ejs-lineargauge>
</div>
</div>
</template>
<script>
import { LinearGaugeComponent, AxesDirective, AxisDirective } from "@syncfusion/ej2-vue-lineargauge";
export default {
name: "App",
components: {
"ejs-lineargauge":LinearGaugeComponent,
"e-axes":AxesDirective,
"e-axis":AxisDirective
},
data: function () {
return {
labelStyle: {
format: '{value}°C'
},
opposedPosition: true,
labelStyle1: {
format: '{value}°F'
}
}
}
};
</script>
<style>
#content-wrapper {
padding: 0px !important;
}
</style>