Vuejsでchartjsを使用してAPIからデータを取得してグラフを表示する方法

量子

私はVuejsを初めて使用し、APIからデータをフェッチしてグラフを表示する方法を知りたいです。

以下は私のコードです。データを「日付とチャレンジ」として使用し、データを直接フィードしましたが、APIを呼び出して、そこからデータを「日付とチャレンジ」にフィードしたいと思います。

APIなしでチャートを表示するために使用したコード:

<template>
  <canvas id="mychart" width="550" height="300"></canvas>
</template>

<script>

export default {
  name: 'Chart',
  data: () => ({
    date: [
      1600934100.0,
      1602009600.0,
      1602747060.0,
      1603050158.390939,
      1603305573.992575
    ],
    challenge: [
      9.0,
      9.5,
      2.5,
      11.52,
      12.4
    ]
  }),
  mounted () {
    // eslint-disable-next-line no-unused-vars
    const data = this.date.map((date, index) => ({
      x: new Date(date * 1000),
      y: this.challenge[index]
    }))

    const ctx = document.getElementById('mychart').getContext('2d')
    // eslint-disable-next-line no-undef,no-unused-vars
    const Chart_2 = new Chart(ctx, {
      type: 'line',
      data: {
        datasets: [
          {
            data,
            label: 'Chart from API ',
            borderColor: '#7367F0'
          }
        ]
      },
      options: {
        scales: {
          xAxes: [
            {
              type: 'time',
              time: {
                unit: 'month',
                displayFormats: {
                  month: 'MMM YYYY'
                }
              }
            }
          ],
          yAxes: [
            {
              ticks: {
                // eslint-disable-next-line no-unused-vars
                callback (value, index, values) {
                  return `${value  }%`
                }
              }
            }
          ]
        }
      }
    })
  }
}
</script>

「axios」または「fetch」を使用してAPIを取得することはわかっているので、APIを取得してconsole.log(response.data)を実行するたびに、ブラウザーのコンソールにデータを取得しますが、さらにマップすることはわかりません。チャートを表示するために、それらのデータを使用して「日付とチャレンジ」をフィードします。

これが私のAPIです:

データを含む私のAPI: https://api.wirespec.dev/wirespec/stackoverflow/fetchchartdataforvuejs

誰かが私のコードで私のAPIを使用してチャートを表示するのを手伝ってください。

量子

最後に、私は答えをフーラを得ました!

APIデータを使用してグラフを視覚化するために、同じように実行できる方法を共有しています。

<template>
  <div class="chart-container" style="position: relative; height: 25vh; width:100%;">
    <canvas id="DisplayChart" ></canvas>
  </div>
</template>

<script>
import moment from 'moment'
export default {
  name: 'Chart_from_API',
  data () {
    return {
      myChart: []
    }
  },
  async mounted () {
    await this.$http.get('https://api.wirespec.dev/wirespec/stackoverflow/fetchchartdataforvuejs') //Your API has to be given here
      .then((response) => {
        const result = response.data
        const ctx = document.getElementById('DisplayChart').getContext('2d')
        const Chart_data = []
        for (let i = 0; i < result.date.length; i++) {
          Chart_data.push({
            x_axis: moment(result.date[i], 'X').toDate(),  //To Convert Unix Timestamp into Date
            y_axis: result.challenge[i]
          })
        }
        // eslint-disable-next-line init-declarations,prefer-const
        let myChart
        if (myChart !== undefined) {
          myChart.destroy()
        }

        // eslint-disable-next-line no-undef
        myChart = new Chart(ctx, {
          type: 'line',
          data: {
            datasets: [
              {
                label: 'Chart_from_API',
                data: Chart_data,
                borderColor: '#EA5455',
                lineTension: 0
              }
            ]
          },
          options: {
            lineTension: 0,
            maintainAspectRatio: false,
            legend: {
              display: false
            },
            scales: {
              yAxes: [
                {
                  scaleLabel: {
                    display: false
                  },
                  ticks: {
                    beginAtZero: true,
                    // eslint-disable-next-line no-unused-vars
                    callback (value) {
                      return `${value  }k`    // y-axis value will append k to it
                    }
                  }
                }
              ],
              xAxes: [
                {
                  type: 'time',
                  time: {
                    unit: 'month'
                  },
                  scaleLabel: {
                    display: true,
                    labelString: ''
                  }
                }
              ]
            }
          }
        })
      })
      .catch((error) => {
        console.log(error)
      })
  }
}
</script>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

グラフAPIを使用してFacebookからデータを取得する

分類Dev

sqliteデータベースからデータを取得してフラグメントで表示する方法

分類Dev

サーバーからJSONデータを取得し、chart.jsを使用してグラフを作成する方法

分類Dev

APIを使用して各国から個別にフラスコからデータを取得する方法

分類Dev

Prestashop APIからデータを取得して、フラッターに表示することはできません

分類Dev

MySQLデータベースからPDFとWordファイルを取得してHTMLタグで表示する方法

分類Dev

VueJSを使用してAPIからのデータをlocalStorageに保存する方法

分類Dev

c#からxmlデータを取得し、jqueryを使用してhtmlでリストとして表示する方法

分類Dev

react-chartjs-2を使用して各スライスの円グラフデータ値を表示する

分類Dev

セレンを使用してwebapgeからデータを取得し、フラスコを使用して表示するのは大変ですか?

分類Dev

配列からのデータを使用してchartjs.orgでグラフを作成するにはどうすればよいですか?

分類Dev

reactjsを使用してテーブルのAPIから取得したデータを表示する方法

分類Dev

.val() を使用してテーブルから最後の行データを取得し、jquery を使用してアラートで表示する方法は?

分類Dev

VueJSでforループを使用して属性からデータをグループ化する方法

分類Dev

REST APIからデータを取得し、Angularjsで表示する方法

分類Dev

chartjs-plugin-labels(円グラフ)を使用してパーセンテージ(%)を角度2/8で表示する方法

分類Dev

javascriptを使用して取得したフィラベースデータを別のビューで表示する方法

分類Dev

AngularJSを使用してhtmlタグからデータを取得する方法

分類Dev

mysqlからデータをフィルタリングし、javaを使用してjtableに表示する方法

分類Dev

expressJSでchartjsを使用してデータをレンダリングする方法

分類Dev

Pythonを使用してAPIからJSONデータをフェッチ中にキーエラーを取得する

分類Dev

JQuery/Ajax を使用して API からデータを取得する

分類Dev

reactを使用してフェッチAPIからのデータを表示する

分類Dev

jquerydatatableを使用してURLからAPIデータを表示する方法

分類Dev

Chartjs:軸のデータラベルを非表示にして、ホバーするとグラフに表示することはできますか?

分類Dev

表示ダイアログでテキストフォームを使用してユーザー入力を取得する方法をフラッターしますか?

分類Dev

axiosを使用してvuexのAPIからデータを取得する方法は?

分類Dev

WebサーバーAPIからMpAndroidを使用してグラフを表示することは可能ですか?

分類Dev

WebサーバーAPIからMpAndroidを使用してグラフを表示することは可能ですか?

Related 関連記事

  1. 1

    グラフAPIを使用してFacebookからデータを取得する

  2. 2

    sqliteデータベースからデータを取得してフラグメントで表示する方法

  3. 3

    サーバーからJSONデータを取得し、chart.jsを使用してグラフを作成する方法

  4. 4

    APIを使用して各国から個別にフラスコからデータを取得する方法

  5. 5

    Prestashop APIからデータを取得して、フラッターに表示することはできません

  6. 6

    MySQLデータベースからPDFとWordファイルを取得してHTMLタグで表示する方法

  7. 7

    VueJSを使用してAPIからのデータをlocalStorageに保存する方法

  8. 8

    c#からxmlデータを取得し、jqueryを使用してhtmlでリストとして表示する方法

  9. 9

    react-chartjs-2を使用して各スライスの円グラフデータ値を表示する

  10. 10

    セレンを使用してwebapgeからデータを取得し、フラスコを使用して表示するのは大変ですか?

  11. 11

    配列からのデータを使用してchartjs.orgでグラフを作成するにはどうすればよいですか?

  12. 12

    reactjsを使用してテーブルのAPIから取得したデータを表示する方法

  13. 13

    .val() を使用してテーブルから最後の行データを取得し、jquery を使用してアラートで表示する方法は?

  14. 14

    VueJSでforループを使用して属性からデータをグループ化する方法

  15. 15

    REST APIからデータを取得し、Angularjsで表示する方法

  16. 16

    chartjs-plugin-labels(円グラフ)を使用してパーセンテージ(%)を角度2/8で表示する方法

  17. 17

    javascriptを使用して取得したフィラベースデータを別のビューで表示する方法

  18. 18

    AngularJSを使用してhtmlタグからデータを取得する方法

  19. 19

    mysqlからデータをフィルタリングし、javaを使用してjtableに表示する方法

  20. 20

    expressJSでchartjsを使用してデータをレンダリングする方法

  21. 21

    Pythonを使用してAPIからJSONデータをフェッチ中にキーエラーを取得する

  22. 22

    JQuery/Ajax を使用して API からデータを取得する

  23. 23

    reactを使用してフェッチAPIからのデータを表示する

  24. 24

    jquerydatatableを使用してURLからAPIデータを表示する方法

  25. 25

    Chartjs:軸のデータラベルを非表示にして、ホバーするとグラフに表示することはできますか?

  26. 26

    表示ダイアログでテキストフォームを使用してユーザー入力を取得する方法をフラッターしますか?

  27. 27

    axiosを使用してvuexのAPIからデータを取得する方法は?

  28. 28

    WebサーバーAPIからMpAndroidを使用してグラフを表示することは可能ですか?

  29. 29

    WebサーバーAPIからMpAndroidを使用してグラフを表示することは可能ですか?

ホットタグ

アーカイブ