Echarts バー水平棒グラフのサンプルコード

Echarts バー水平棒グラフのサンプルコード

前回の記事に引き続き#Echart Bar ヒストグラム風詳細説明、先に前回の記事を読んでいただいても構いません、読んでいなくても特に影響は大きくありません。

横棒グラフ

データとスタイルを動的に更新する

月次統計と日次統計の動的な切り替えを実現します。統計を月別に計算すると、各月のデータが表示され、X 軸には 12 個のラベルが表示されます。統計を日別に計算すると、X 軸にはすべてのラベルが完全には表示されず、間隔を置いて表示され、列の幅も変わります。主に使用されるメソッドは setOption メソッドです。

公式ドキュメント [setOption]: echarts.apache.org/zh/api.html…

<スクリプト>
  "ramda" から R として * をインポートします。

  定数ソース1 = [
    [「1月」、1330年、666、560]、
    [「2月」、820、760、660]、
    ......
    [「11月」、901、880、360]、
    [「12月」、934、600、700]、
  ];
  定数ソース2 = [
    ["1日", 1330, 666, 560],
    ["2番目", 820, 760, 660],
    ......
    ["29日", 934, 600, 700],
    ["30日", 1330, 666, 560],
  ];

  // 具体的な設定は前に示したとおりですが、詳細は省略し、基本的な例のみを示します。const initOption = {
    ...
    データセット: { ソース: source1 },
  };

  エクスポートデフォルト{
    データ() {
      戻る {
        チャート: null、
        isDaily: 偽、
      };
    },
    マウント() {
      this.charts = this.$echarts.init(
        document.getElementById("barCharts"),
        ヌル、
        {
          レンダラー: "svg",
        }
      );
      this.charts.setOption(R.clone(initOption));
    },
    メソッド: {
      ハンドルソース() {
        this.isDaily = !this.isDaily;
        this.charts.setOption(
          R.mergeDeepRight(initOption, {
            // データソースデータセットを動的に更新します: {
              ソース: this.isDaily ? ソース2: ソース1、
            },
            x軸:
              // ラベル間隔を動的に更新する axisLabel: {
                間隔: this.isDaily ? 4 : "auto",
              },
            },
            シリーズ: R.map(
              // 列幅を動的に更新する (o) => ((o.barWidth = this.isDaily ? 12 : 24), o),
              initOption.シリーズ
            )、
          })、
          真実
        );
        チャートのサイズを変更します。
      },
    },
  };
</スクリプト>

eChartsの幅と高さの適応の問題を解決する

Web プロジェクトでチャートを作成する場合、チャートの幅と高さは固定されておらず、ブラウザの幅と高さに適応する必要があります。使用される方法は、サイズ変更です。複数のグラフがある場合は、同時にサイズを変更する必要があります。

<スクリプト>
  エクスポートデフォルト{
    マウント() {
      window.addEventListener("サイズ変更", this.handleResize, false);
    },
    破壊された() {
      window.removeEventListener("サイズ変更", this.handleResize);
    },
    メソッド: {
      ハンドルサイズ変更() {
        _this は定数です。
        定数タイマー = setTimeout(() => {
          _this.lineCharts.resize();
          _this.barCharts.resize();
        }, 500);
        // タイマーをクリアします this.$once("hook:beforeDestroy", () => {
          タイマーを設定します。
        });
      },
    },
  };
</スクリプト>

縦棒グラフ

縦棒グラフの実装

本質は水平方向と同じで、x軸とy軸の値を置き換えるだけです。x軸は値、y軸はカテゴリです。

オプション = {
  x軸:
    タイプ: "値",
  },
  y軸: {
    タイプ:「カテゴリー」、
  },
};

座標インジケータの背景グラデーションカラー

実は原理は水平方向と同じで、グラデーションカラー処理領域のx値とy値が変更されます。

水平色を{
  タイプ: "線形"、
  x: 1, // 変更 y: 0,
  x2: 0,
  y2: 0, // colorStopsを変更: [
    { オフセット: 0、色: "rgba(234,244,255,1)" },
    { オフセット: 1、色: "rgba(234,244,255,0.3)" },
  ]、
  グローバル: false、
};

列ごとに異なる色を設定する

列のシリーズプロパティ設定の色は関数にすることができ、関数内で処理することができます。コアコードはcolorList[params.dataIndex]です

colorList = [ とします。
  "#1890ff",
  "#52c41a",
  "#faad14",
  "#f5222d",
  "#1DA57A",
  "#d9d9d9",
];
シリーズ = [
  {
    タイプ: "バー",
    バー幅: 16,
    アイテムスタイル: {
      // 異なる色の列を実現するためにカスタマイズされた表示(順序) color: (params) => {
        colorList[params.dataIndex]を返します。
      },
    },
    ディメンション: ["タイプ", "販売数量"],
  },
];

棒グラフの上に値を表示する

列のシリーズプロパティ設定のラベルは関数にすることができ、関数内で処理することができます。位置、フォントの色、サイズなどを設定できます。コアコードはparams.value[params.encode.x[0]]です。

シリーズ = [
  {
    // ......
    タイプ: "バー",
    ラベル: {
      // 列グラフのヘッダー表示値 show: true,
      位置: "右",
      色: "#333",
      フォントサイズ: "12px",
      フォーマッタ: (パラメータ) => {
        params.value[params.encode.x[0]]を返します。
      },
    },
  },
];

ツールチッププロンプトボックスのカスタマイズ

水平方向と同じですが、値params[0].axisValue、item.seriesName、item.value[item.encode.x[0]]に注意してください。

ツールチップを R.merge(tooltip, {
  フォーマッタ: 関数(パラメータ) {
    html = `<div style="height:auto;width:163px;">とします。
          <div style="font-size:14px;font-weight:bold;color:#333;margin-bottom:16px;line-height:1;">
            ${params[0].axisValue}
          </div>
          ${パラメータ
            。地図(
              (
                アイテム
              ) => `<div style="font-size:12px;color:#808080;margin-bottom:8px;display:flex;align-items:center;line-height:1;">
                <span style="display:inline-block;margin-right:8px;border-radius:6px;width:6px;height:6px;background-color:${
                  アイテムの色
                };"></span>
                ${item.seriesName}
                <span style="flex:1;text-align:right;">${
                  アイテム.値[アイテム.エンコード.x[0]]
                </span>
              </div>`
            )
            。参加する("")}
        </div>`;
    html を返します。
  },
});

全体的な実装

チャート.setOption({
  タイトル:
    テキスト:「販売数量分布」、
  },
  データセット:
    ソース: [
      [「アップル」、200]、
      [「ピーチ」、180]、
      [「ブドウ」、340]、
      [「バナナ」、250]、
      [「マンゴー」、166]、
      [「ドリアン」、185]、
    ]、
  },
  x軸: R.merge(y軸, {
    タイプ: "値",
  })、
  y軸: R.mergeDeepRight(x軸, {
    タイプ:「カテゴリー」、
    軸ポインタ:
      シャドウスタイル: {
        色: 水平色、
      },
    },
  })、
  シリーズ、
  ツールチップ、
});

要約する

Echarts Bar 水平棒グラフに関するこの記事はこれで終わりです。より関連性の高い Echarts Bar 水平棒グラフのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。皆様が今後も 123WORDPRESS.COM を応援してくれることを願っています。

以下もご興味があるかもしれません:
  • jQueryプラグインEchartsで実装されたグラデーションカラーの棒グラフ
  • jQuery プラグイン echarts で実装された複数列の棒グラフ効果の例 [デモ ソース コードのダウンロード付き]
  • echartsが進捗バーに似た棒グラフに2つの値を表示する問題を解決します
  • 並列実装コードの代わりにecharts棒グラフの背景の重なり合う組み合わせ
  • Echarts 基本入門: 棒グラフと折れ線グラフの一般的な構成

<<:  VirtualBox での CentOS 8.1 仮想マシンのインストールを最小限に抑える詳細なチュートリアル

>>:  MySQL マスター スレーブ データが矛盾しています。プロンプト: Slave_SQL_Running: 解決策はありません

推薦する

Linux でファイルのユーザーとグループを変更する方法

Linux では、ファイルが作成されると、そのファイルの所有者はファイルを作成したユーザーになります...

新しく作成された MySQL ユーザーの % には localhost が含まれていますか?

通常の説明%はどのクライアントでも接続できることを意味しますlocalhostはローカルコンピュータ...

UnityはMySQLに接続し、テーブルデータの実装コードを読み取ります

表は以下のとおりです。 Unity が読み取って呼び出すときのコード: データベース内の別のテーブル...

Tomcat のメモリ構成の正しい姿勢についての簡単な説明

1. 背景多くのブログや記事を読みましたが、JVM のメモリ割り当て方法に関する包括的な記事は見つか...

CSSでフレックス配置を表示する(レイアウトツール)

display: flex レイアウトに関しては、深く理解している人もいますし、私も他の人の作業か...

角丸四角形の HTML+CSS 実装コード

退屈していたので、突然角丸四角形の実装を思いつきました。しかし、私たちはこの話題についてあまりにも長...

実用的な情報が満載のJavaScript Webフォーム機能通信

1. はじめに先ほど、フロントエンドの表示の問題について説明しました。では、前のコンテンツに戻って、...

CSSでできるならJavaScriptは使わない

序文JavaScript で記述できるアプリケーションは、最終的には JavaScript で記述さ...

vue3.0 のウォッチ リスナーの例の詳細な説明

目次序文リスナーと計算プロパティの違いvue3 で watch を使用するにはどうすればいいですか?...

JavaScript DOMContentLoaded イベントのケーススタディ

DOMContentLoaded イベント文字通り、DOM がロードされた後に実行されます。 win...

Tomcat の設定と Eclipse での起動方法

目次Tomcat8のインストールと設定方法tomcat ダウンロードTomcat マネージャーを有効...

mysql 行列変換サンプルコード

1. 需要3 つのテーブルがあります。一定期間にわたるさまざまな抗生物質感受性の結果、つまり rep...

ウェブフォームデザインのための5つの実用的なヒント

1. フォームテキスト入力のモバイル選択: テキスト入力フィールドにプロンプ​​トが追加されている場...

Dockerはbusyboxを使用してベースイメージを作成します

Docker イメージの最初の行は FROM alpine などのイメージで始まりますが、最初のベー...