角度でechartsマップを使用する詳細な説明

角度でechartsマップを使用する詳細な説明

Angular で echart を使用する場合は、対応するコンポーネントのライフサイクルで echart API を呼び出すだけで済みます。

echartの初期化

コンポーネントの ngOnInit イベントで echarts を初期化し、オプションを構成すると、echarts チャートが生成されます。

アプリベースチャートコンポーネント

html

<div #chart [ngClass]="'chart-box ' + (!option ? 'empty-chart' : '')"></div>

CS

// 基本的なチャートスタイル.chart-box{
  フォントの太さ: 太字;
  境界線: 1px 実線 #dcdcdc;
  境界線の半径: 4px;
}
// オプションが利用できない場合のスタイル。empty-chart{
  ディスプレイ: フレックス;
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。
  フォントサイズ: 18px;
}
'@angular/core' から { Component、ElementRef、Input、OnDestroy、OnInit、ViewChild } をインポートします。
'rxjs' から { fromEvent、Subscription、timer } をインポートします。
'rxjs/operators' から { debounceTime, tap } をインポートします。
'echarts' から { ECharts、EChartsOption、init } をインポートします。
@成分({
  セレクター: 'app-base-chart',
  テンプレート URL: './base-chart.component.html',
  スタイル URL: ['./base-chart.component.scss']
})
BaseChartComponentクラスをエクスポートし、OnInit、OnDestroyを実装します。
  @Input() オプション: EChartsOption;
  @Input() 高さ = '300px';
  @Input() 幅 = '100%';
  @ViewChild('chart', { static: true }) チャート: ElementRef;
  aChart: ECharts;
  windowResize: サブスクリプション;
  タイマー: サブスクリプション;
  デフォルトグリッド = {
    トップ: 10,
    右: 10,
    下: 30,
    残り: 30,
  };
  コンストラクタ() { }
  ngOnInit(): void {
    このメソッドはListenメソッドを呼び出す。
    このボックススタイルを初期化します。
    if (!!this.option) {
      this.echartsInit();
    }それ以外{
      this.chart.nativeElement.innerText = 'まだデータがありません';
    }
  }
  // コンポーネントが破棄されたら、関連するサブスクリプションをキャンセルします ngOnDestroy(): void {
    if (this.windowResize) {
      購読を解除します。
    }
    if (this.timer) {
      this.timer.unsubscribe();
    }
  }
  // コンテナのサイズを初期化する
  ボックススタイル初期化(): void {
    this.chart.nativeElement.style.width = this.width;
    this.chart.nativeElement.style.height = this.height;
  }
  // ウィンドウのサイズ変更イベントリスナーを設定し、echartsのサイズを再描画します setListen(): void {
    this.windowResize = fromEvent(window, 'resize').pipe(
      デバウンス時間(200)、
      タップ(res => {
        チャートのサイズを変更します。
      })
    )。購読する();
  }
  // オプションに従ってechartsチャートを設定および生成しますechartsInit(): void {
    this.aChart = init(this.chart.nativeElement);
    this.aChart.setOption(Object.assign({ grid: this.defaultGrid }, this.option));
    // 遅延器を介してechartsのサイズを変更します this.timer = timer(400).subscribe(res => {
      チャートのサイズを変更します。
    });
  }
}

app-base-chartコンポーネントの使用

<app-base-chart [オプション]="オプション" 幅="100%" 高さ="300px" ></app-base-chart>

上記のコードをコンポーネントの HTML で使用するだけで、高さと幅も設定できます。オプションはechartsによって公式に定義されたオプションです

これは実際には基本的なecharts生成コンポーネントの単純なカプセル化であり、すべての構成項目はechartsです。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Javascript Echarts 空気質マップ効果の詳細な説明
  • JavaScript によるデータ視覚化: ECharts マップの作成
  • vue+echarts で中国地図のフロー効果を実現する (詳細な手順)
  • vue+echarts+datav 大画面データ表示と中国地図の省、市、郡のドリルダウン機能の実装
  • Vue の echarts に中国地図を導入するケーススタディ

<<:  MySQL の永続性とロールバックの原理を 1 つの記事で理解する

>>:  Linux 環境に MySQL 8.0 をインストールするプロセスの紹介

推薦する

コード分​​析を実現するためのFastDFSとNginxの統合

FastDFSとNginxの統合:トラッカーは、負荷分散と高可用性のために Nginx と組み合わせ...

BT Baota Panel php7.3 および php7.4 が ZipArchive をサポートしない問題の解決方法

Baota PanelのPHP7.3バージョンがZipArchiveをサポートしていないため、プログ...

Node.js における非同期プログラミングの知識ポイントの詳細な説明

導入JavaScript はデフォルトでシングルスレッドであるため、コードは並列実行するための新しい...

CSS3のtext-fill-colorプロパティの詳細な説明

text-fill-color とは何を意味しますか?文字通りの意味から言えば、「テキストの塗りつぶ...

MySQL 8.0.18 安定版がリリースされました! 予想通りハッシュ結合が実装されました

MySQL 8.0.18 安定版 (GA) が昨日正式にリリースされ、Hash Join も期待通り...

MySQL PHP 構文の簡単な分析

まずcharAt関数の基本的な構文を見てみましょう文字 = str.charAt(インデックス) c...

Vue3のdefineComponentの役割についての簡単な説明

目次defineComponent オーバーロード関数開発実務defineComponent 関数は...

MySQL データベースの型変換のための CAST 関数と CONVERT 関数の説明

MySQL のCAST()およびCONVERT()関数を使用すると、ある型の値を取得し、別の型の値を...

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

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

NetEase ブログで使用されているシンプルな Web ページ コード

NetEase Blog でコードを使用する方法: まずブログにログインし、ブログのホームページの左...

Linux システムが VMware にインストールされているかどうかを確認する方法

現在の Linux システムが VMware にインストールされているかどうかを確認する方法を教えて...

JS オブジェクト配列の重複排除のための 3 つの方法の例と比較

目次1. 重複排除前後のデータの比較2. 使い方1. フィルターとマップを使用する2. 削減を使用す...

Nginx ローカル ディレクトリ マッピング実装コード例

他のデバイスの画像をローカルディレクトリにマウントするなど、サーバー上の静的リソースにアクセスする必...

MySQLは適切なストレージエンジンを選択します

データベースに関して最もよく聞かれる質問の 1 つは、現在のビジネス ニーズを満たす MySQL の...

シンプルな HTML ビデオ プレーヤーを実装する方法

この記事では、シンプルな HTML ビデオ プレーヤーを実装する方法を紹介し、皆さんと共有します。詳...