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パラメータ転送における中国語の文字化けについて

推薦する

nginx を使用して正規表現で指定された URL リクエストを傍受する方法

nginx サーバーnginx は、静的ファイルの処理に非常に効率的な優れた Web サーバーです。...

Vueはタブナビゲーションバーを実装し、左右のスライド機能をサポートしています

この記事では主に、Vue を使用してタブ ナビゲーション バーを実装し、flex レイアウトを使用し...

Docker ベースの Tomcat クラスタと Nginx ロード バランシングの展開の概要

目次前面に書かれた1. Ngixnイメージの作成2. Java Web (Tomcat) アプリケー...

MySQL: データの整合性

データ整合性は、エンティティ整合性、ドメイン整合性、参照整合性に分けられます。参照整合性:参照整合性...

MySQL の文字セットの不一致によって発生する異常な接続テーブルの解決方法

目次1. 解決策2. MySQLの文字セット文字セット検証ルール次のように簡単なテーブルクエリを実行...

Vue での親子コンポーネント通信と、sync を使用して親子コンポーネント データを同期する

目次序文子コンポーネントは親コンポーネントにデータを渡す1. 親コンポーネントから子コンポーネントに...

NavicatがMySQL8.0.11に接続するとエラー2059が発生する

間違いNavicat Premium を使用して MySQL に接続すると、次のエラーが発生します。...

インラインブロックを使用した複数のdiv間の間隔はプログラミング方法とは異なります

inline-block について学習しているときに、境界線と inline-block を持つ複数...

Dockerイメージをプライベートリポジトリにアップロードする方法の例

イメージは、GitHub と同様に Docker パブリック リポジトリに直接簡単にプッシュできます...

WeChat アプレット学習 WXS 使用方法チュートリアル

wxsとは何ですか? wxs (WeiXin Script) は、小規模プログラム用のスクリプト言語...

Ubuntu で .sh ファイルを実行するいくつかの方法の違いについて簡単に説明します。

序文特に bash 環境では、スクリプトの実行方法によって結果が異なります。スクリプトを実行する方法...

MySQL クラスター化インデックスのページ分割原理の分析例

この記事では、MySQL クラスター化インデックスのページ分割を例を使って説明します。ご参考までに、...

自動ヘルスレポートを実現するDocker+Selenium方式

この記事では、ある大学の健康報告システムを例に、Web 側の自動化操作を完成させます。使用したテクノ...

Dockerを使用してSpring Bootプロジェクトをデプロイする手順

目次シンプルなSpringbootプロジェクトを作成する1. pom.xmlでSpring Boot...

Docker stopはすべてのコンテナを停止/削除します

この記事では主に、すべてのコンテナを削除する Docker stop/remove を紹介し、皆さん...