VueでEchartsチャートの幅と高さの適応を実現する実践

VueでEchartsチャートの幅と高さの適応を実現する実践

1. インストールとインポート

npm インストール echarts --save
//メイン.js 

// 'echarts' から echarts をインポートします。 
import * as echarts from 'echarts'; // echarts 5以上をインストールした場合は、この方法でインポートする必要があります Vue.prototype.$echarts = echarts

2. 手ぶれ補正機能を定義する

ポータル: Vue でアンチシェイク、スロットリング、および関数のアプリケーション シナリオを実装する

// utils/common.js

// 手ぶれ補正関数 _debounce(fn, delay = 300) {
  var タイマー = null;
  関数を返す(){
    var _this = これ;
    var args = 引数;
    if (タイマー) clearTimeout(タイマー); 
    タイマー = setTimeout(関数() {
      fn.apply(_this, args);
    }、 遅れ);
  };
}

輸出{
  _デバウンス、
}

3. チャートコードを描く

<テンプレート>
  <div class="charts">
    <div id="lineChart" :style="{ 幅: '100%', 高さ: '400px' }"></div>
  </div>
</テンプレート>

<スクリプト>
'@/utils/common.js' から { _debounce } をインポートします。
エクスポートデフォルト{
  データ() {
    戻る {};
  },
  メソッド: {
    描画線() {
      // 準備された dom に基づいて echarts インスタンスを初期化します。let lineChart = this.$echarts.init(document.getElementById("lineChart"));
      ラインチャート.setOption({
        タイトル:
          テキスト:「降雨量と流量の関係図」、
          x:「中心」、
        },
        x軸:
          タイプ:「カテゴリー」、
          データ: ["月", "火", "水", "木", "金", "土", "日"],
        },
        y軸: {
          タイプ: "値",
        },
        シリーズ: [
          {
            データ: [820, 932, 901, 934, 1290, 1330, 1320],
            タイプ: "line",
          },
        ]、
      });
    },
    resizeCharts:_debounce(function(){
      this.$echarts.init(document.getElementById('lineChart')).resize()
    },500)
  },
  マウント() {
    この.drawLine();
    window.addEventListener('resize',this.resizeCharts);
  },
  破棄前() {
    window.addEventListener('resize',this.resizeCharts);
  },
};
</スクリプト>

init メソッド

ECharts インスタンスを作成し、echartsInstance を返します。単一のコンテナーで複数の ECharts インスタンスを初期化することはできません。

(dom: HTMLDivElement|HTMLCanvasElement、テーマ?: Object|文字列、オプション?: {
    デバイスピクセル比?: 数値、
    レンダラー?: 文字列、
    useDirtyRect?: boolean, // `v5.0.0` 以降でサポートされています width?: number|string,
    高さ?: 数値|文字列,
    ロケール?: 文字列
}) => ECharts

dom: インスタンス コンテナー。通常は高さと幅を持つ div 要素です。

注意: div が非表示の場合、ECharts は div の高さと幅を取得できず、初期化に失敗する可能性があります。この場合、div の style.width と style.height を明示的に指定するか、div が表示された後で echartsInstance.resize を手動で呼び出してサイズを調整することができます。

ECharts 3 では、キャンバス要素をコンテナーとして直接使用することがサポートされており、チャートを描画した後、キャンバスを画像として他の場所に直接適用できます。たとえば、WebGL でテクスチャとして使用すると、echartsInstance.getDataURL を使用して画像リンクを生成する場合と比較して、チャートのリアルタイム更新をサポートできます。

theme: アプリケーションのテーマ。テーマ構成オブジェクト、または echarts.registerTheme を通じて登録されたテーマ名にすることができます。

opts: 追加パラメータ。いくつかのオプションがあります:

  • devicePixelRatio デバイスのピクセル比。デフォルト値はブラウザの window.devicePixelRatio です。
  • レンダラー レンダラー。'canvas' または 'svg' をサポートします。 Canvas または SVG を使用したレンダリングを参照してください。
  • useDirtyRect ダーティ レクタングル レンダリングを有効にするかどうか。デフォルト値は false です。 ECharts 5 の新機能をご覧ください。
  • width を使用すると、インスタンスの幅をピクセル単位で明示的に指定できます。入力値が null/undefined/'auto' の場合、DOM (インスタンス コンテナ) の幅が自動的に取得されることを意味します。
  • height インスタンスの高さをピクセル単位で明示的に指定できます。渡された値が null/undefined/'auto' の場合、DOM (インスタンス コンテナー) の高さが自動的に取得されることを意味します。
  • ロケールが使用する言語には、「ZH」と「EN」の 2 つの組み込み言語があり、echarts.registerLocale メソッドを使用して新しい言語パックを登録することもできます。現在サポートされている言語については src/i18n を参照してください。

テーマを指定しない場合は、次のように、opts を渡す前に null を渡す必要があります: const chart = echarts.init(dom, null, {renderer: 'svg'});

リサイズ方法公式サイト説明

チャートのサイズを変更します。コンテナのサイズが変更された場合は、この関数を手動で呼び出す必要があります。

(オプション: {
    幅?: 数値|文字列,
    高さ?: 数値|文字列,
    サイレント?: ブール値、
    アニメーション?:
        期間?: 数値
        イージング?: 文字列
    }
}) => ECharts

パラメータ:

opts は省略できます。いくつかのオプションがあります:

  • width: インスタンスの幅をピクセル単位で明示的に指定できます。入力値が null/undefined/'auto' の場合、DOM (インスタンス コンテナ) の幅が自動的に取得されることを意味します。
  • height: インスタンスの高さをピクセル単位で明示的に指定できます。渡された値が null/undefined/'auto' の場合、DOM (インスタンス コンテナー) の高さが自動的に取得されることを意味します。
  • silent: イベントのスローを禁止するかどうか。デフォルト値は false です。
  • アニメーション: サイズ変更時に遷移アニメーションを適用するかどうか (期間とイージング構成を含む)。デフォルトの期間は 0 で、遷移アニメーションは適用されません。

ヒント:
チャートは複数のタブに配置されることがあります。チャートを初期化する際、最初は非表示のタブはコンテナの実際の高さと幅を取得できないため、描画に失敗することがあります。そのため、タブに切り替える際には、手動で resize メソッドを呼び出して正しい高さと幅を取得してキャンバスを更新するか、opts で指定したチャートの高さと幅を表示する必要があります。
ポータル: Echarts 公式ドキュメント

これで、Vue を使用して Echarts チャートの幅と高さの適応を実装する方法に関するこの記事は終了です。Vue Echarts チャートの幅と高さの適応の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援してください。

以下もご興味があるかもしれません:
  • Vue で echarts チャート適応を使用するためのいくつかのソリューション
  • Vue での複数の echarts チャートの適応の問題に対する完璧なソリューション
  • Vue における echarts3.0 の適応型メソッド

<<:  ウェブデザインに必須のツール: Firefox Web Developer プラグイン CSS ツールセットのチュートリアル

>>:  CSS の border 属性と display 属性の使い方の簡単な分析

推薦する

CSS を使用して半透明の背景と不透明なテキストを実現する例

この記事では、CSS を使用して半透明の背景と不透明なテキストの効果を実現する方法の例を紹介します。...

MySQLデータベース最適化技術の簡単な紹介

成熟したデータベース アーキテクチャは、最初から高可用性、高スケーラビリティなどの機能を備えて設計さ...

Reactを使用して画像認識アプリを実装する方法

まずは効果の写真をお見せしましょう。 個人的には効果は問題ないと思います。アプリが写真を学習する時間...

Vue uniapp はセグメンター効果を実現します

この記事では、セグメンター効果を実現するためのvue uniappの具体的なコードを参考までに共有し...

リモートログインとポート公開を防ぐためのLinuxサーバー構成IPホワイトリスト

序文ブロガーが使用しているサーバーは Alibaba Cloud から購入したものです。実際、Ali...

Docker デプロイメント RabbitMQ コンテナ実装プロセス分析

1. イメージをプルするまず、次のコマンドを実行して、イメージをローカル コンピューターにダウンロー...

MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...

Vue3の組み込みコンポーネントであるTeleportの使い方を詳しく説明します

目次1. テレポートの使用2. モーダルダイアログコンポーネントを完成させる3. コンポーネントのレ...

Vueは開始時間と終了時間の範囲クエリを実装します

この記事では、Vueで開始時間と終了時間の範囲を照会する方法を参考までに紹介します。具体的な内容は次...

Ubuntu 20.04 IPアドレスを変更する方法の例

例:本日、前回のオフィスコラボレーションプラットフォーム実験の続きをしていたところ、仮想マシンは以前...

HTML における要素の水平および垂直中央揃えに関する議論

ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ペー...

ダッシュボードを実装するためのjQueryプラグイン

jQueryプラグインは、参考のためにダッシュボードを実装します。具体的な内容は次のとおりです。一般...

JavaScriptの強力な演算子をいくつか見てみましょう

目次序文1. ヌル合体演算子2. ??= 空代入演算子3. ?. オプション連鎖演算子4. ?: 三...

CentOS7.4 起動時の緊急モードへようこそメッセージに対する解決策

今日は仮想マシンを使って実験をしました。システムをインストールし、いくつかのオプションを最適化した後...