Asad Abbas
Asad Abbas

Reputation: 160

Unable to create line chart using Highcharts - Vue.js

I am trying to create a line chart using highcharts.js. Below is the code I am using:

<template>
<Highcharts :options="chartOptions" ></Highcharts>
</template>

<script>
import { mapActions } from 'vuex'
import Vue from 'vue'
import { Highcharts }  from 'highcharts'
export default 
{
    components: {
        Vue,
        Highcharts
        },
    data ()
    {
        return{
               chartOptions:{
            title: {text: 'Solar Employment Growth by Sector, 2010-2016'},
            subtitle: {text: 'Source: thesolarfoundation.com'},
            yAxis: {title: {text: 'Number of Employees'}},
            legend: {layout: 'vertical',align: 'right',verticalAlign: 'middle'},
            plotOptions: {series: {label: {connectorAllowed: false},pointStart: 2010}},
            series: [
                {name: 'Installation',data: [43934, 52503, 57177, 69658, 97031, 119931, 137133,154175]},
                {name: 'Manufacturing',data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434]},
                {name: 'Sales & Distribution',data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387]},
                {name: 'Project Development',data: [null, null, 7988, 12169, 15112, 22452, 34400, 34227]},
                {name: 'Other',data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111]}
                ]}}}}

But when I run this code I get:

Unknown custom element: <Highcharts> - did you register the component correctly? For recursive components, make sure to provide the "name" option.

Please let me know how to fix this problem. Thanks in advance.

Upvotes: 0

Views: 1378

Answers (2)

Wojciech Chmiel
Wojciech Chmiel

Reputation: 7372

I recommend you using Highcharts Vue Wrapper that can be downloaded here: https://github.com/highcharts/highcharts-vue.

In main.js register the wrapper:

import HighchartsVue from "highcharts-vue";

Vue.use(HighchartsVue);

Import it and register in the chart component:

<template>
  <div>
    <highcharts
      :options="chartOptions"
      ref="lineCharts"
      :constructor-type="'chart"
    ></highcharts>
  </div>
</template>

<script>
import { Chart } from "highcharts-vue";
import Highcharts from "highcharts";
import exportingInit from "highcharts/modules/exporting";

exportingInit(Highcharts);

export default {
    ...
  components: {
    highcharts: Chart
  },
  data() {
    return {
      chartOptions: {
        series: [{
            data: [1, 2, 3]
        }]
      }
    };
  }
};
</script>

Demo:

Upvotes: 2

Koassi AKAKPO
Koassi AKAKPO

Reputation: 9

Highcharts Vue Wrapper official tutorial https://www.highcharts.com/blog/tutorials/highcharts-vue-wrapper/

Upvotes: -1

Related Questions