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: 解決策はありません

推薦する

Reactイベントスロットリング効果が失敗する理由と解決策

目次ここでの問題は次の通りです:解決策1:解決策2: コンストラクタで初期化を割り当てる採掘場の概要...

vue-router からのフロントエンドルーティングの 2 つの実装

目次モードパラメータハッシュ履歴ハッシュ履歴.push()ハッシュ履歴.replace()アドレスバ...

HTML と埋め込み Flash の両方におけるスクロールバーの分析と処理

開発を行う際に、次のような状況に遭遇することがよくあります。 a.swf が Web ページに追加さ...

Linux インストール MySQL5.6.24 使用手順

Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...

Xftp のダウンロードとインストールのチュートリアル (グラフィック チュートリアル)

Windows と Linux 間でファイルを転送する場合は、Xftp ツールを使用できます。この...

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

この記事の例では、JavaScriptで4桁のランダムな検証コードを生成する具体的なコードを参考まで...

Nginx リバース プロキシを使い始める

目次概要リバースプロキシの役割Nginx リバース プロキシ イントラネット侵入 8081 ポートの...

VMware インストール後に仮想ネットワーク カードが表示されない問題について

1 問題の説明: 1.1 Windows 10 に VMware を初めてインストールする場合、また...

jQuery キャンバスで画像検証コード例を描画する

この記事では、jQuery Canvasの描画画像検証コードの具体的なコードを例として紹介します。具...

VMware Workstation のインストール Linux (Ubuntu) システム

システムをコンピューターにインストールする方法がわからない場合は、Linux を学習したい場合は、仮...

Nginx http ヘルスチェック構成プロセス分析

パッシブチェックパッシブ ヘルス チェックでは、NGINX と NGINX Plus はイベントの発...

Vue はモバイル端末にマルチグリッド入力ボックスを実装

最近、同社は、下図に示すように、h5 ページ操作を完了するという要件を提示しました。 ネットで入手で...

Nodejs は JSON 文字列を JSON オブジェクトに変換するエラー解決法

JSON 文字列を JSON オブジェクトに変換するにはどうすればいいですか? JSON.parse...

MySql で正規表現クエリを使用する方法

正規表現は、特定のパターンに一致するテキストを検索および置換するためによく使用されます。たとえば、テ...