Plugin Vuejs for Chartist.js Note: uses modified version of Chartist.js
This fork uses a modified version of chartist.js to allow responsiveProperties to be updated as well
npm i @matteoraf/vue-chartist --save
This package include Chartist's javascript but not the stylesheet
Vue.use(require('@matteoraf/vue-chartist'))
In your HTML, add <chartist>
tag. This tag take the following attributes :
-
ratio -
String
class ratio of Chartist, see values on Chartist web site -
type -
String
(required) chart type, possible values :Line
Bar
Pie
-
data -
Object
data object like this
const data = {
labels: ["A", "B", "C"],
series:[[1, 3, 2], [4, 6, 5]]
}
-
options -
Object
options object, see defaultOptions on API Documentation -
event-handlers -
Array
a special array to usechart.on(event, function)
const eventHandlers = [{
event: 'draw',
fn() {
//animation
}
}, {
//an other event hander
}]
- responsive-options -
Array
object for responsive options
<chartist
ratio="ct-major-second"
type="Line"
:data="chartData"
:options="chartOptions"
:responsive-options="chartResponsiveOptions"
>
</chartist>
Note: think about using the dynamic props of Vuejs to bind easliy your data or other.
new Vue({
el:'#app',
data: {
chartData: {
labels: ["A", "B", "C"],
series:[[1, 3, 2], [4, 6, 5]]
},
chartOptions: {
lineSmooth: false
}
}
})
If chart data are empty or not definied the plugin add ct-nodata
(or a custom class, see options plugin) class and write a message on the element.
That way, you can customize your element with CSS when you have no data to display. To choose your message use the options plugin.
Vue.use(require('vue-chartist'), {
messageNoData: "You have not enough data",
classNoData: "empty"
})
There is two way to access this Chartist's instance :
By Vue
instance
Vue.chartist
or in component
this.$chartist