ChartJS 如何创建一个< select>,它将选择用于绘制图表的文件

rkttyhzu  于 2022-11-06  发布在  Chart.js
关注(0)|答案(1)|浏览(138)

我有一个用外部文件中的数据绘制的图表。现在我想有一个select,用户可以在其中选择要读取的文件。这样图表就会动态变化。我如何使用vue和chartjs来实现这一点呢?
目前我在Home中导入的数据是这样的

<template>
  <div class="home">
    <Graph :vul_data="data"/>
  </div>
</template>

<script>
import { Component, Prop, Vue } from 'vue-property-decorator';
import Graph from '@/components/Graph.vue';
import {data} from '@/data/dataFile.js'

@Component({
  components: {
    Graph,
  },
})
export default class HomeView extends Vue {
  data() {
    return {
      data: data,
    }
  }
}
</script>

每个文件都有这样的数据:

export const data = {
    "points": {
      "line1": {
        "x": [
          -11,
          -11,
        ],
        "y": [
          7,
          8,
        ]
      },
    },
}

组件是这样的:

<template>
  <div>
    <canvas id="myChart"></canvas>
  </div>
</template>
<script>

import Chart from 'chart.js/auto';

export default{
  name: "Graph",
  props: ["vul_data"],

  mounted(){
    const ctx = document.getElementById('myChart');
    const myChart = new Chart(ctx, {
        type: 'scatter',
        data: {
          datasets: [{
            label: 'Line 1',            
            data:[
              {x: this.vul_data.points.line1.x[0], y: this.vul_data.points.line1.y[0]},
              {x: this.vul_data.points.line1.x[1], y: this.vul_data.points.line1.y[1]},
            ],
          }, 
          ] 
        },
    });
  }
}
</script>
<style>

</style>
hiz5n14c

hiz5n14c1#

您可以有一个<select>,其中的选项包含与.js文件名相同的值。当所选内容发生更改时,运行一个方法,动态导入该文件,并将导入的数据赋给您作为属性传递给Graph组件的变量。简单的示例代码:
第一个

相关问题