0

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.

2 Answers 2

2

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:

Sign up to request clarification or add additional context in comments.

1 Comment

thanks, I was able to solve this problem by following your suggestion so I am accepting this answer
-1

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.