AVIOSとグラフを使用してVueのデータを取得し、視覚化する.js
導入
まず第一に、これは私の最初の記事です.
私は私自身のcovid 19 trackerを作っていて、APIと呼ばれている何かに出くわしました.APIのクイックイントロ
始める
これは私のファイル構造です.
D:.
└───components
├───Body
├───DataGathering
├───Footer
├───Header
├───HomePage
│ ├───assets
│ └───Breads
├───Maps
└───Visuals
私は、axiosとチャートの作業だけに集中しています.jsAxiosとグラフをインストールします.js
npm install chart.js --save
npm install axios
使用するには:import Chart from 'chart.js';
const axios = require("axios");
データフェッチ
caseという名前のコンポーネントを作成します.ボディ/ケースのVue.Vue
<template>
<div>
<br>
<br>
<div>
<CaseBread></CaseBread>
<hr/>
<br>
<h2>Cases</h2>
<CasesLine
:label="labels"
:chart-data="confirmed"
></CasesLine>
<br>
<br>
<CasesBar
:label="labels"
:chart-data="confirmed"
></CasesBar>
<br>
<br>
</div>
</div>
</template>
<script>
const axios=require("axios")
import CasesBar from '@/components/Visuals/CasesBar'
import CasesLine from '@/components/Visuals/CasesLine'
import CaseBread from '@/components/HomePage/Breads/CaseBread'
export default {
data : ()=> {
return {
labels : [],
confirmed : [],
}
},
components : {
CasesLine,
CasesBar,
CaseBread
},
async created() {
const { data } = await axios.get("https://covid19.mathdro.id/api/confirmed");
var c=0
for(var i=0;i<1000;i++){
if(data[i].countryRegion=="India"){
if (data[i].provinceState in this.labels){
continue
}
else{
this.labels.push(data[i].provinceState)
this.confirmed.push(data[i].confirmed)
c=c+1
if(c==28){
break
}
}
}
}
console.log(this.labels)
}
}
</script>
注意:
これをコピーしているとき、casesbreadとそれの関連要素のすべてを取り除きます.
それではどうしますか。
Vueで作成された非同期ライフサイクルメソッドの下で、APIからデータを取得します.
https://covid19.mathdro.id/api/confirmed
そして、それをコンポーネントcaseslineとcasesbarに渡します.これらの2つのコンポーネントは、2つの小道具、ラベル、チャートを使用します.labelはフェッチされた状態名を含む配列で、対応するケースとグラフはそれぞれの状態の対応するケースを含む配列です.APIを取得するには、
axios.get("YOUR_API");
チャート作成
ここで2つのタイプのチャートを議論します.
ラインチャート
線図を作成するには、caseslineというファイルを作成します.VEUsのビジュアル/casesline.Vue
<template>
<canvas ref="myChart" width="900px" height="250px"></canvas>
</template>
<script>
import Chart from 'chart.js';
export default {
props: {
label: {
type: Array
},
chartData: {
type: Array
},
},
aysnc mounted() {
await new Chart(this.$refs.myChart, {
type: 'line',
data: {
labels: this.label,
datasets: [
{
label: 'CASES',
borderColor: 'rgba(245, 229, 27, 1)',
backgroundColor: 'rgba(255, 236, 139,0.2)',
data: this.chartData,
}
]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
}
}
</script>
手順:結果:
棒グラフ
棒グラフを作成するには、casesbarというファイルを作成します.VEEビジュアル/casesbar.Vue
<template>
<canvas ref="myChart" width="900px" height="250px"></canvas>
</template>
<script>
import Chart from 'chart.js';
export default {
props: {
label: {
type: Array
},
chartData: {
type: Array
}
},
async mounted() {
await new Chart(this.$refs.myChart, {
type: 'bar',
data: {
labels: this.label,
datasets: [
{
label: 'CASES',
backgroundColor: 'rgba(144,238,144 , 0.9 )',
data: this.chartData,
}
]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
}
}
</script>
手順:それで終わりだ
Reference
この問題について(AVIOSとグラフを使用してVueのデータを取得し、視覚化する.js), 我々は、より多くの情報をここで見つけました
https://dev.to/23subbhashit/fetching-and-visualizing-data-in-vue-using-axios-and-chart-js-k2h
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(AVIOSとグラフを使用してVueのデータを取得し、視覚化する.js), 我々は、より多くの情報をここで見つけました https://dev.to/23subbhashit/fetching-and-visualizing-data-in-vue-using-axios-and-chart-js-k2hテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol