javascript - 在 Vue 组件和 Webpack cli 设置中使用 ChartJs

标签 javascript vue.js chart.js

我正在尝试在 vue 组件中使用 ChartJs 构建图表,但在页面上呈现它时遇到困难。有人可以告诉我我的错误在哪里吗?

// this is my HTML canvas tag
<canvas  id="myChart" width="400" height="400"></canvas>

以下是我的Js代码

import Chart from 'chart.js';

  export default {
    methods: {
      CreateChart(chartId,chartData){
        const ctx =               document.getElementById('myChart').getContext('2d');
        var myChart = new Chart(ctx, {
          type: 'bar',
          data: {
            labels: ['JavaScript','NodeJs','VueJs','DataBase'],
            datasets: [{
              label: '# of votes',
              data: [12,15,23,7],
              backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
              ],
              borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
              ],
              borderWidth: 1
            }]
          },
          options: {
            scale: {
              yAxes: [{
                ticks: {beginAtZero: true}
              }]
            }
          }
        });
      }
    },
    mounted(){
      const data = {myChart}
      this.CreateChart('chart',data);
    }
  }

提前致谢。

最佳答案

没有您应该使用scalesscale选项。

new Vue({
    el: "#app",
    methods: {
      createChart(chartId,chartData){
        var myChart = new Chart(this.$refs.chart.getContext("2d"), {
          type: 'bar',
          data: {
            labels: ['JavaScript','NodeJs','VueJs','DataBase'],
            datasets: [{
              label: '# of votes',
              data: chartData,
              backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
              ],
              borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
              ],
              borderWidth: 1
            }]
          },
          options: {
            scales: {
              yAxes: [{
                ticks: {beginAtZero: true}
              }]
            }
          }
        });
      }
    },
    mounted(){
      let data = [12,15,23,7]
      this.createChart('chart',data);
    }
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js"></script>
<div id="app">
 <canvas id="chart" ref="chart" width="400" height="400"></canvas>
</div>

关于javascript - 在 Vue 组件和 Webpack cli 设置中使用 ChartJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51477165/

相关文章:

javascript - 从 jQuery 变量中删除并替换字符并设置为新变量?

javascript - 如何使用 Vue JS 为向导类型表单制作动画

vue.js - VueJS Image Tag Source 不工作,我该如何解决?

javascript - 是否可以将一 block Canvas 放在另一 block Canvas 旁边,而底部没有空间?

javascript - 如何使用 Chart.js 在雷达图中标记轴

javascript - 检查元素是否具有特定的类和特定的 ID

php - 如何正确使用 JSON 从 php 文件中获取 MYSQL 数据库的行数?

javascript - 减少谷歌加号按钮的页面重量

vue.js - Vuetify 选择保留旧值

html - ChartJS "half donut"图表显示不正确