Vue+Echart 棒グラフで疫病データ統計を実現

Vue+Echart 棒グラフで疫病データ統計を実現

4 つのステップ、4 つのステップ。最後まで直接ジャンプする場合は、いくつかの依存関係と環境を構成することを忘れないでください。

1. まずプロジェクトにechartsをインストールします

1. echarts依存パッケージをインストールする

npm インストール echarts --save

2. プラグインディレクトリにecharts.jsファイルを作成し、そこにecharts依存パッケージをインポートします。

'vue' から Vue をインポートします
import echarts from 'echarts' //エラーが発生する可能性があるので注意が必要です。次のメソッドを使用できます。Vue.prototype.$echarts = echarts

上記の一般的な方法を使用すると、次のエラーが発生する可能性があります。「エクスポート 'default' ('echarts' としてインポート) が 'echarts' に見つかりませんでした。

これは、Echarts 5.x では上記のインポート方法がサポートされなくなったためです。詳細については、Echarts の公式 Web サイトをご覧ください。

つまり、次のように変更されます。

'vue' から Vue をインポートします
import * as echarts from 'echarts' //違いはここにあります Vue.prototype.$echarts = echarts

3. 先ほど作成したechart.jsをnuxt.config.js設定ファイルに導入します。

 プラグイン: ['~plugins/echarts']
 //これを追加するためだけに書いたので、ここにこれだけがあるというわけではありません//「@/plugins/echarts」という形式も使用できますが、ほぼ同じです

2. echartsに縦棒グラフテンプレートを導入する

(これはステップごとに書かれています。読みたくない場合は、最終コードがある最後までジャンプできます)

プロジェクトのコードには次のように書かれています:

<テンプレート>
  <div id="echarts">
    <div id="myChart"></div> 
  </div>
</テンプレート>
<script type="text/javascript">
エクスポートデフォルト{
  名前:「Echarts」、
  データ() {
    戻る {};
  },
  メソッド: {
      echartsInit() { // チャートを作成するメソッドを定義します。let myChart = this.$echarts.init(document.getElementById("myChart"));
      
      myChart.setOption({
        タイトル:
          テキスト: 「echarts の棒グラフで伝染病の統計を理解」
          テキスト配置: "自動"、
          左: '中央'
        },
        ツールチップ: {},
        // 州(水平軸)
        x軸:
          データ: ['月', '火', '水', '木', '金', '土', '日']
          //データ: this.areaName, //これは最終データであり、このタイプを使用せずにテストを開始できることを示しています: "category",
          軸ラベル: {
            rotate: -45, // 30 度回転します。そうしないと、水平軸が完全に表示されません。show: true, // このコード行は、x 軸のテキストを表示するかどうかを制御します。},
        },
        y軸: {},
        // 確認された番号シリーズ: [
          {
            名前:「確認された症例の総数」、
            タイプ: "バー",
            //データ: this.areaConfirm, //これは最終データであり、このデータがなくてもテストを開始できることを示しています: [120, 200, 150, 80, 70, 110, 130],
          },
        ]、
      });
    },
  }
  //mounted はテンプレートが HTML にレンダリングされた後、通常は初期化ページが完了した後に呼び出され、その後 HTML DOM ノードに対していくつかの必要な操作が実行されます。mounted() {
  	this.echartsInit();
  },
  }
</スクリプト>
<スタイルスコープ>
	#myChart {
	  幅: 100%;
	  高さ: 300px;
	  左マージン: 自動;
	  右マージン: 自動;
	}
</スタイル>

3. API経由でデータをインポートする

私が使用しているインターフェースアドレスはTencentから提供されています: https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5 クリックして表示

大量のデータが表示されるので、必要なデータを取得するにはデータを整理して分割する必要があります。

1. まずクロスドメインの問題を解決する必要があります

npm で axios をインストールします。

2. インストール後、nuxt.config.js ファイルに次の設定を追加します。

モジュール.エクスポート = {
//すべてのモジュールではなく、追加する部分を示します: ["@nuxtjs/axios"],

  アクシオス:
    プロキシ: true
  },

  プロキシ: {
    '/api/': {
    target: 'https://view.inews.qq.com', //このウェブサイトはオープンソースであり、データをリクエストできます。pathRewrite: {
    '^/api/': '/',
    変更元: true
    }
   }
  },
}

3. インターフェースデータを処理する

    取得データ() {
      this.$axios.get(`/api/g2/getOnsInfo?name=disease_h5`).then(({データ}) => {
        //console.log(JSON.parse(data.data.replace('\\"', "'")));
        this.area = JSON.parse(
          data.data.replace('\\"', "'")
        ).areaTree[0].children;
        // エリア名 this.areaName = this.area.map((o) => {
          o.name を返します。
        });
        //確認された症例の総数 this.areaConfirm = this.area.map((o) => {
          o.total.confirm を返します。
        });
        console.log(this.areaConfirm);
        // 現在の感染者数 hh 結局使わなかったようです。必要なら参照してください this.areaNowConfirm = this.area.map((o) => {
          o.total.nowConfirm を返します。
        });
        this.echartsInit();
      });
    },

処理されたデータは、欲しいものだけを取ってください、ということを明確に示しています。

4. コードを統合する

わあ、ついに完成しました。これが私のコードです

<テンプレート>
  <div id="echarts">
    <div id="myChart"></div>
  </div>
</テンプレート>
<script type="text/javascript">
エクスポートデフォルト{
  名前:「Echarts」、
  データ() {
    戻る {
      エリア: []、
      エリア名: [],
      エリア確認: [],
      エリア現在確認: [],
    };
  },
  
  メソッド: {
    取得データ() {
      this.$axios.get(`/api/g2/getOnsInfo?name=disease_h5`).then(({データ}) => {
        console.log(JSON.parse(data.data.replace('\\"', "'")));
        this.area = JSON.parse(
          data.data.replace('\\"', "'")
        ).areaTree[0].children;
        // エリア名 this.areaName = this.area.map((o) => {
          o.name を返します。
        });
        //確認された症例の総数 this.areaConfirm = this.area.map((o) => {
          o.total.confirm を返します。
        });
        console.log(this.areaConfirm);
        // 現在確認されている症例 this.areaNowConfirm = this.area.map((o) => {
          o.total.nowConfirm を返します。
        });
        this.echartsInit();
      });
    },
    echartsInit() {
      myChart を this.$echarts.init(document.getElementById("myChart")) とします。
      myChart.setOption({
        タイトル:
          テキスト: 「echarts の棒グラフで伝染病の統計を理解」
          テキスト配置: "自動"、
          左: '中央'
        },
        ツールチップ: {},
        // 州 xAxis: {
          データ: this.areaName、
          タイプ:「カテゴリー」、
          軸ラベル: {
            rotate: -45, // 30 度回転 show: true, // このコード行は、x 軸上のテキストを表示するかどうかを制御します},
        },
        y軸: {},
        // 確認された番号シリーズ: [
          {
            名前:「確認された症例の総数」、
            タイプ: "バー",
            データ: this.areaConfirm、
          },
        ]、
      });
    },
  },
  マウント() {
    データの取得
    this.echartsInit();
  },
};
</スクリプト>
<スタイルスコープ>
#myChart {
  幅: 100%;
  高さ: 300px;
  左マージン: 自動;
  右マージン: 自動;
}
</スタイル>
 

これで、Vue+Echart 棒グラフを使用して疫病データ統計を実現する方法についての説明は終わりです。Vue Echart 棒グラフ データ統計に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue+Echartは3次元の縦棒グラフを実現します
  • VueはEchartアイコンプラグインの棒グラフを使用します
  • Echarts を使用して棒グラフを描く vue の詳細な説明
  • Vue echarts は水平棒グラフを実現します
  • Vue+echart で 2 列チャートを実現
  • Vueは水平の斜めの棒グラフを実装します
  • Vue+echarts で積み上げ棒グラフを実現
  • Vue+echarts でプログレスバーのヒストグラムを実現
  • VueはEchartsを使用して3次元棒グラフを実装します
  • Vue+ Antv F2 は積み上げ棒グラフを実現します

<<:  MySQLデータベースインデックスの詳細な説明

>>:  hrefパラメータ転送における中国語の文字化けについて

推薦する

シンプルな計算機を実装する JavaScript コード

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

完全なMySQL学習ノート

目次MyISAM と InnoDBパフォーマンスの低下と SQL の速度低下の理由: MySQL 実...

win2008 サーバー セキュリティ設定の展開ドキュメント (推奨)

私は新年を迎える前からプロジェクトに取り組んでいましたが、ここ数日で、新しいサーバー用に新しく増設し...

Vueを使い始める際に習得する必要がある知識について簡単に説明します

最も人気のあるフロントエンド フレームワークの 1 つとして、Vue は多くのフロントエンド開発エン...

Windows 2019 アクティベーション チュートリアル (Office2019)

数日前、Server2019の正式版がリリースされたことを知り、面白半分でインストールしてみることに...

dockerでopenGaussデータベースを構成する方法の詳細な説明

Windowsユーザー向けDocker で openGauss を使用するopenGaussイメージ...

MySQL は、元のデータと同じデータがある場合、更新ステートメントを再度実行しますか?

背景この記事では主に、MySQL が更新ステートメントを実行するときに、元のデータと同一の (つまり...

アイデアをDockerに接続してワンクリックでデプロイする方法

1. docker設定ファイルを変更し、ポート2375を開きます。 [root@s162 docke...

MySQL データベース JDBC プログラミング (Java は MySQL に接続します)

目次1. データベースプログラミングの基本条件2. Java でのデータベースプログラミング: JD...

MySQL のスローログオンラインの問題と最適化ソリューション

MySQL スロー ログは、MySQL DBA やその他の開発および運用担当者が細心の注意を払う必要...

2つのシンプルなメニューナビゲーションバーの例

メニューバーの例 1: コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

CSS 背景画像を設定するための 6 つの興味深いヒント

background-image は、おそらくすべてのフロントエンド開発者がキャリアの中で少なくとも...

JSONオブジェクトのキーを置き換える最良の方法

JSON (JavaScript Object Notation、JS Object Notatio...

データベースインデックスの知識ポイントの概要

目次ファーストルックインデックスインデックスの概念インデックスファイルの構成インデックスの役割SQL...

MySQL 8.0 Windows zip パッケージ版の詳細なインストール手順

MySQL 8.0 Windows zipのインストール手順は次のように紹介されています。準備する:...