VUEはG2チャートを使用した実装を導入します

VUEはG2チャートを使用した実装を導入します

G2チャートについて

G2 は、グラフィック文法の理論に基づいた視覚化エンジンです。データ駆動型で、グラフィック文法とインタラクティブ文法を提供し、非常に使いやすく拡張性に優れています。G2 を使用すると、チャートの面倒な実装の詳細に注意を払う必要はありません。Canvas または SVG を使用して、1 つのステートメントでさまざまなインタラクティブな統計チャートを作成できます。

G2 Charts 公式ウェブサイトアドレス
出典: antv.gitee.io

G2アイコン詳細開発マニュアル
https://antv-g2.gitee.io/zh/docs/api/general/chart

使用

ステップ1: G2依存パッケージをインストールする

npm インストール @antv/g2

ステップ2: 描画前にG2用のDOMコンテナを準備する

<div id="webInfo"></div>

ステップ3: インポート

"@antv/g2" から G2 をインポートします。

ステップ4: マウントされた状態で定義する

まず、let chart = null をグローバルに定義します。

const チャート = 新しい G2.Chart({})

チャート = 新しい G2.Chart({       
        container: "webInfo", // チャート コンテナーを指定します forceFit: true, // 強制フィット width: 600, // チャートの幅を指定します height: 306, // 高さ padding: [20, 30, 30, 50], // パディング})

ステップ5: データソースを読み込む

/今すぐチャートを更新/ 
チャートデータの変更 

/データを更新するだけで、チャートをすぐに更新する必要はありません/ 
チャートソース(チャートデータ) 

/チャートを更新する必要があるときに呼び出します/ 
チャートの再描画()

拡張されたクリアグラフィック文法

/すべてをクリーンアップ/
チャートをクリアします。 

テンプレートで使用される完全なコード (棒グラフ)

<テンプレート>
  <div id="c1"></div>
</テンプレート>
<スクリプト>
    エクスポートデフォルト{
        名前: 「スペクタキュラー」、
        データ(){
            戻る {
                基本的な列チャートプロパティ:{
                    データ:[{ ジャンル: 'スポーツ', 販売数: 275 },
                        { ジャンル: '戦略'、販売数: 115 }、
                        { ジャンル: 'アクション'、販売数: 120 },
                        { ジャンル: 'シューティング'、販売数: 350 }、
                        { ジャンル: 'その他'、販売数: 150 }]、
                    コンテナ:'c1',
                    幅:700,
                    高さ:600
                },
            }
        },
        方法:{
            テスト(){
                const データ = this.basicColumnChartProp.data;
                constチャート = 新しいG2.Chart({
                    コンテナ: this.basicColumnChartProp.container、
                    幅: this.basicColumnChartProp.width、
                    高さ: this.basicColumnChartProp.height
                });
                chart.source(データ);
                chart.interval().position('ジャンル*販売数').color('ジャンル')
                チャートをレンダリングします。
            }
        },    
        マウント() {
          これをテストします。
        },
    }
</スクリプト>

世界地図を追加する

(プロジェクトが困っていた時にG2のマップを探したのですが、APIドキュメントでは分かりにくく説明が足りない部分があると感じたのでここに記録しておきます)

<テンプレート>
  <div id="c1"></div>
</テンプレート>
<スクリプト>
    定数 DataSet は require('@antv/data-set');
    エクスポートデフォルト{
        名前: 「スペクタキュラー」、
        データ(){
            戻る {
                基本的な列チャートプロパティ:{
                    コンテナ:'c1',
                },
            }
        },
        方法:{
            テスト(){
              フェッチ('src/views/dataCenter/data/world/countries.geo.json')
              .then(res => res.json())
              .then(mapData => {
                constチャート = 新しいG2.Chart({
                  コンテナ:this.basicColumnChartProp.container、
                  フォースフィット: true、
                  高さ:700,
                  パディング: [10,10]
                });
                チャート.ツールチップ({
                  タイトルを表示: false
                });
                // 同期メトリック chart.scale({
                  経度:
                    同期: 真
                  },
                  緯度:
                    同期: 真
                  }
                });
                chart.axis(false);
                chart.legend('トレンド', {
                  位置: '左'
                });
 
                // 世界地図の背景を描画します const ds = new DataSet();
                定数ワールドマップ = ds.createView('back')
                  .source(mapData, {
                    タイプ: 'GeoJSON'
                  });
                定数worldMapView = chart.view();
                worldMapView.source(worldMap);
                worldMapView.tooltip(false);
                worldMapView.polygon().position('経度*緯度').style({
                  塗りつぶし: '#fff',
                  ストローク: '#ccc',
                  線幅: 1
                });
 
                定数userData = [
                  { 名前: 'ロシア'、値: 86.8 },
                  { 名前: '中国'、値: 106.3 },
                  { 名前: '日本'、値: 94.7 },
                  { 名前: 'モンゴル', 値: 98 },
                  { 名前: 'カナダ'、値: 98.4 },
                  { 名前: 'イギリス'、値: 97.2 },
                  { 名前: 'アメリカ合衆国'、値: 98.3 },
                  { 名前: 'ブラジル'、値: 96.7 },
                  { 名前: 'アルゼンチン'、値: 95.8 },
                  { 名前: 'アルジェリア'、値: 101.3 },
                  { 名前: 'フランス'、値: 94.8 },
                  { 名前: 'ドイツ'、値: 96.6 },
                  { 名前: 'ウクライナ'、値: 86.3 },
                  { 名前: 'エジプト'、値: 102.1 },
                  { 名前: '南アフリカ'、値: 101.3 },
                  { 名前: 'インド'、値: 107.6 },
                  { 名前: 'オーストラリア'、値: 99.9 },
                  { 名前: 'サウジアラビア'、値: 130.1 },
                  { 名前: 'アフガニスタン'、値: 106.5 },
                  { 名前: 'カザフスタン'、値: 93.4 },
                  { 名前: 'インドネシア'、値: 101.4 }
                ];
                定数userDv = ds.createView()
                  .source(ユーザーデータ)
                  。変身({
                    ジオデータビュー: ワールドマップ、
                    フィールド: '名前',
                    タイプ: 'geo.region',
                    形式: [ '経度', '緯度' ]
                  })
                  。変身({
                    タイプ: 'マップ'、
                    コールバック: obj => {
                      // obj.trend = obj.value
                      obj.trend = (obj.value > 100) ? '男性が多い' : '女性が多い';
                      obj を返します。
                    }
                  });
                ユーザービューをチャートビューに変換します。
                userView.source(userDv, {
                  トレンド: {
                    別名: 「女性 100 人あたりの男性の数」
                  }
                });
                ユーザービュー.ポリゴン()
                  .position('経度*緯度')
                  .color('トレンド', [ '#F51D27', '#0A61D7' ])
                  .opacity('値')
                  .tooltip('名前*トレンド')
                  .animate({
                    離れる:
                      アニメーション: 'fadeOut'
                    }
                  });
                チャートをレンダリングします。
              })
            },
        },
        マウント() {
          これをテストします。
        },
    }
</スクリプト>
  • fetchの公式サイトでは特定のjsonファイルではなくファイルディレクトリが紹介されており、使用時にファイルが見つからない
  • fetchによって導入されたjsonはローカルです。第二に、G2公式サイトが提供するリモートgithupアドレスはこのjsonファイルを取得できません。
  • fetchによって導入されたjsonファイルのパスは、現在のファイルからjsonへのパスではなく、index.htmlからjsonファイルへのアドレスです。

G2チャートを導入したVUEの実装に関するこの記事はこれで終わりです。G2チャートを使用したVUEのより関連性の高いコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue で G2 チャートを使用するためのサンプル コード
  • vueプロジェクトでAntv G2を参照し、円グラフを例に挙げます。
  • VueでG2チャートをカプセル化する方法

<<:  MySQL ストアド プロシージャにおけるループ ステートメント (WHILE、REPEAT、LOOP) の使用法の分析

>>:  Tomcat の一般的な例外と解決コードの例

推薦する

Docker コンテナ入門から夢中になるまで(推奨)

1. Docker とは何ですか?仮想マシンについては誰もが知っています。Windows に Li...

MySQL バッチ挿入とユニークインデックスの問題に対する解決策

MySQL バッチ挿入の問題プロジェクトを開発しているときに、古いシステムの基本データを事前にインポ...

製品の拡大鏡効果を実現する JavaScript

この記事では、参考までに、製品拡大鏡を実装するためのJavaScriptの具体的なコードを紹介します...

Vueプロジェクトをパッケージ化してリリースする手順

目次1. 開発環境から本番環境への移行2. 統一されたリクエストパスを設定する3. パッケージ化コマ...

Linuxでポートが開いているかどうかを確認する方法のまとめ

方法1: lsofコマンドを使用するlsof コマンドを使用して、ポートが開いているかどうかを確認で...

JSは検証コードのランダム生成を実装します

この記事の例では、検証コードのランダム生成を実現するためのJSの具体的なコードを参考までに共有してい...

Oracle VM VirtualBox の CentOS7 オペレーティング システムのインストール チュートリアル図

目次インストール手順環境設定実行構成インストール手順ダウンロードアドレス: バージョン6.0 最初に...

MySQL エラー番号 1129 の解決方法

SQLyog が MySQL に接続する際にエラー番号 1129 が発生します: mysql エラー...

React 国際化 react-i18next の詳細な説明

導入react-i18next は、 i18nextをベースにした強力な国際化フレームワークです。 ...

Docker の 4 つのネットワーク タイプの主な例

4 つのネットワーク タイプ:なし: コンテナのネットワーク機能を一切設定しません。--net=no...

Vue プロジェクトはファイルダウンロードの進行状況バー機能を実装します

日常業務でファイルをダウンロードする一般的な方法は 2 つあります。 1 つ目は、サーバーのファイル...

MySQL で行を列に変換したり、列を行に変換したりする詳細な例

mysql 行から列へ、列から行へ難しい文章ではないので、詳しく説明はしません。文章を読むときは、一...

htmlダウンロード機能の詳しい説明

新しいプロジェクトは基本的に終了しました。フロントエンドとバックエンドを分離して統合を完了したのは初...

Linux で Nginx 1.16.0 をインストールするための詳細なチュートリアル

最近 Linux をいじっていたので、nginx の新しいバージョンをインストールしたいと思いました...

Vue3 コンポジション API の紹介

目次概要例なぜそれが必要なのでしょうか?設定参照、反応的計算して見るライフサイクルVue3.0 は ...