eCharts でパーセンテージ付きの横棒グラフを実装する方法

eCharts でパーセンテージ付きの横棒グラフを実装する方法

サンプルコード

var データ = [220, 182, 191, 234, 290, 120, 65, 444];
var バーの幅 = 20;
var 最大数 = 0;
(var i = 0; i < データ長さ; i++) {
    if (データ[i] > maxNum) {
        最大数 = データ[i];
    }
}
 
オプション = {
    背景色: '黒'、
    グリッド: {
        上: '10%'、
        左: '20%'、
        右: '10%'、
        下部: '0%'、
    },
 
    タイトル:
        テキスト: 'パーセンテージ列'、
    },
    x軸:
        表示: 偽、
    },
    y軸: {
        データ: data.map((item, index) => `data ${index}`),
        分割行: {
            表示: 偽、
        },
        軸ラベル: {
            テキストスタイル: { フォントサイズ: '80%', 色: '#02afff' },
        },
        軸線: {
            表示: 偽、
        },
        軸目盛り: false、
    },
    シリーズ: [
        {
            タイプ: 'バー'、
            バー幅: バー幅、
            zレベル: 2,
            データ: data.map(function (item) {
                戻る {
                    値: アイテム、
                    最大数: 最大数、
                };
            })、
            ラベル: {
                表示: true、
                位置: 'inside'、
                // 距離: 80,
                配置: '中央'、
                フォーマッタ: 関数 (パラメータ) {
                    // params.data.realValue を返します。
                    var パーセント = Number((params.data.value / params.data.maxNum) * 100).toFixed(2) + '%';
                    リターン率;
                },
                色: '#fff',
                フォントサイズ: 12,
            },
            アイテムスタイル: {
                境界半径: 10,
                色: 新しい echarts.graphic.LinearGradient(0, 1, 1, 1, [
                    { オフセット: 0、色: '#395CFE' },
                    { オフセット: 1、色: '#2EC7CF' },
                ])、
            },
        },
        {
            タイプ: 'バー'、
            バー幅: バー幅、
            バーギャップ: '-100%',
            データ: data.map(function (item) {
                戻る {
                    実数値: 項目、
                    値: maxNum、
                };
            })、
            ラベル: {
                表示: true、
                位置: '右'、
                距離: 80,
                配置: '右'、
                フォーマッタ: 関数 (パラメータ) {
                    params.data.realValue + 'item' を返します。
                },
                色: '#02afff',
                フォントサイズ: 18,
            },
            アイテムスタイル: {
                境界半径: 10,
                色: 'rgba(3,169,244, 0.5)',
            },
        },
    ]、
};

レンダリング

コード分​​析

1. オプションの前に、データ配列を定義し、for ループを使用して配列内の最大値を取得し、それを maxNum 変数として保存します。

2. シリーズに 2 つのバーを定義します。最初のバーのデータがマッピングされ、値は手順 1 のデータに設定されます。オブジェクト型が返されます。オブジェクトには、value と maxNum の 2 つの属性が含まれます (value は必須属性、maxNum はカスタム属性で、必要に応じて他のカスタム属性を追加できます)。maxNum 属性が追加されるのは、ラベルのフォーマッタが value/maxNum を使用してパーセンテージを計算する必要があるためです。シリーズでデータをオブジェクト型として返すという書き方は初めて目にしました。計算用のデータを取得するのにとても便利です。

3. シリーズの 2 番目のバーも、マップを通じてデータを割り当てます。違いは、このバーの値がすべて maxNum に設定されていることです。2 番目のバーは背景として機能し、100% の進行状況に相当します。 realValue 属性が必要な理由は、各項目の値 (220、182、191、234、290、120、65、444 など) をバーの右側に表示する必要があるためです。

4. 最初のバーは上にあり、2 番目のバーは下にあります。キーは、最初のバーの zlevel:2 と 2 番目のバーの barGap: '-100%' です。

echarts の公式ウェブサイトでより多くの事例を読むことは、私にとって本当に有益です。

要約する

これで、echarts でパーセンテージ付きの横棒グラフを実装する方法に関するこの記事は終了です。echarts パーセンテージ横棒グラフの関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Echarts バー水平棒グラフのサンプルコード
  • Echarts 基本入門: 棒グラフと折れ線グラフの一般的な構成

<<:  Node.jsはMySQLデータベースの実戦記録を追加、削除、変更、チェックします

>>:  検索テキストボックスがフォーカスを外れたときにテキストの位置がジャンプする問題の解決方法

推薦する

単一選択折りたたみメニュー機能を実現するCSS

前回の「最もシンプルなスイッチを実現するCSS」のように、HTML5とCSS3でほとんどの機能をすで...

Javascript 仮想 DOM の詳細な説明

目次仮想DOMとは何ですか?なぜ仮想DOMが必要なのでしょうか?仮想 DOM はどのようにして実際の...

Linux仮想メモリについての簡単な説明

目次起源仮想メモリページングとページテーブルメモリのアドレス指定と割り当て関数プロセスメモリ管理デー...

MySQLパーティションテーブルの詳細な説明

序文:パーティショニングはテーブル設計パターンです。一般的に、テーブル パーティショニングとは、条件...

MySQLデータ行と行オーバーフローのメカニズムの詳細な説明

1. 行の形式は何ですか? MySQL の行形式の設定は次のように表示されます。 実際、MySQL ...

HTML での位置の使用に関する簡単な紹介

昨日 HTML を少し学んだばかりで、JD.com の検索バーを作るのが待ちきれませんでした。 作っ...

autoconfを使用してMakefileを生成し、プロジェクトをコンパイルする手順

序文Linux では、コンパイルとリンクには Makefile を使用する必要がありますが、適切な ...

MySQL の削除に基づく構文エイリアスの問題

目次MySQL 削除構文エイリアスの問題mysql の delete ステートメントでエイリアスを使...

Linux でのログ サーバーの設定に関するグラフィック チュートリアル

序文この記事では、Linux 構成ログ サーバーに関する関連コンテンツを主に紹介し、参考と学習のため...

jQueryはシャトルボックス効果を実現します

この記事では、シャトルボックス効果を実現するためのjQueryの具体的なコードを参考までに紹介します...

HTML、CSS、JSコメントの標準的な使用法の概要

必要なコメントを追加することは、責任感と道徳心のあるフロントエンド開発者が持つべき良い習慣であり、コ...

CSS3 フレックスレイアウトを使用して要素を均等に分散するサンプルコード

この記事では主に、CSS3 フレックスレイアウトを使用して要素を均等に配置する方法を紹介します。自分...

CSS3を使用してボタンホバーフラッシュダイナミック特殊効果コードを実装する

CSS3 の列シリーズ属性を使用してウォーターフォールレイアウトを作成する方法を紹介しました。興味の...

Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

問題の説明:最近、rsyncで毎回同期するデータ量が多いが、データベースのbakファイルを保持する必...

mysql8.0.23 msi インストールの超詳細なチュートリアル

1.MySqlをダウンロードしてインストールする公式ウェブサイトからMySqlデータベースをダウンロ...