Echart Bar の 2 列チャート スタイルの最も完全な詳細な説明

Echart Bar の 2 列チャート スタイルの最も完全な詳細な説明

序文

最近のプロジェクトでは、視覚的なチャートが必要になり、最初に思い浮かんだのは Echarts と Hightcharts でした。

使用する視覚化チャートは比較的一般的なものです。Echarts のドキュメントと例は比較的包括的であり、中国語で書かれているので読みやすいため、Echarts を選択しました。

独自のチャートスタイルに Echarts を使用する場合は問題ありませんが、UI が明らかに満足できるものではないため、一連のスタイル調整が行われました...

インストールと設定

フロントエンドフレームワークはeasywebpack-vueで、使用されているEchartsのバージョンは^5.0.1です。

Echarts 公式ドキュメント: echarts.apache.org/zh/index.html

1. Echartsをインストールする

npm インストール echarts --save

2. Echartsを世界規模で導入

main.js に次のコードを追加します。

* を echarts として "echarts" からインポートします。
Vue.prototype.$echarts = echarts;

3. オンデマンドでEchartsを導入する

(1)echarts.jsファイルを追加する

// echarts に必要なインターフェースを提供する echarts コア モジュールをインポートします。 import * as echarts from "echarts/core";

// さまざまなチャートをインポートします。すべて接尾辞が「Chart」です。
「echarts/charts」から { BarChart、LineChart、PieChart } をインポートします。

//プロンプトボックス、タイトル、直交座標系などのコンポーネントを導入します。コンポーネントのサフィックスはComponentです。
輸入 {
  タイトルコンポーネント、
  ツールチップコンポーネント、
  ツールボックスコンポーネント、
  グリッドコンポーネント、
  凡例コンポーネント、
  軸ポインタコンポーネント、
  データセットコンポーネント、
} から "echarts/components";

// Canvas レンダラーをインポートします。CanvasRenderer または SVGRenderer のインポートは必須の手順であることに注意してください。import { SVGRenderer } from "echarts/renderers";

// 必要なコンポーネントを登録しますecharts.use([
  棒グラフ、
  折れ線グラフ、
  円グラフ、

  タイトルコンポーネント、
  ツールチップコンポーネント、
  ツールボックスコンポーネント、
  グリッドコンポーネント、
  凡例コンポーネント、
  軸ポインタコンポーネント、
  データセットコンポーネント、

  SVGレンダラー、
]);

デフォルトの echart をエクスポートします。

(2)main.jsファイルにインポートする

「./utils/echarts」からechartsをインポートします。
Vue.prototype.$echarts = echarts;

使用例

<テンプレート>
  <div id="チャート" style="幅: 600px; 高さ: 400px"></div>
</テンプレート>

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

  エクスポートデフォルト{
    マウント() {
      チャートを初期化します。
    },
    メソッド: {
      initCharts() {
        charts = this.$echarts.init(document.getElementById("charts")) とします。
        オプション = {
          タイトル:
            text: "月間消費動向", // タイトル subtext: "ヒストグラム", // サブタイトル},
          x軸:
            タイプ:「カテゴリー」、
          },
          y軸: {
            タイプ: "値",
          },
          color: ["#1890ff", "#52c41a", " #faad14"], // 棒グラフの色データセット: {
            ソース: [
              // データソース ["1月", 1330, 666, 560],
              [「2月」、820、760、660]、
              [「3月」、1290年、1230年、780年]、
              [「4月」、832、450、890]、
              [「5月」、901、880、360]、
              [「6月」、934、600、700]、
            ]、
          },
          シリーズ: [
            // アイコン列の設定 { type: "bar", stack: "total", name: "apple" },
            { タイプ: "bar", スタック: "total", 名前: "Pear" },
            { タイプ: "bar", スタック: "total", 名前: "Peach" },
          ]、
          ツールチップ: {
          //プロンプトボックスコンポーネント}
        };
        charts.setOption(オプション);
      },
    },
  };
</スクリプト>

<style lang="scss" スコープ></style>

オリジナルエフェクト表示:

変身後のターゲットエフェクト表示:

スタイルの最適化

x軸の基本スタイル

基本的な設定は以下のとおりで、スケールや軸に関するプロパティを設定できます。

x軸:
  タイプ:「カテゴリー」、
  boundaryGap: true, // 座標軸の両側の空白戦略、デフォルトは true
  axisTick: { // スケール show: false,
  },
  axisLabel: { // スケールラベルの色: "#808080",
    フォントサイズ: 12,
    margin: 8, // スケールラベルと軸の間の距離 interval: "auto", // x軸ラベルの表示間隔、自動},
  axisLine: { // 軸の線スタイル: {
      色: "#c3c3c3",
      幅: 0.5、
    },
  },
  splitLine: { // 分割線 show: false,
    間隔: "自動"、
  },
  splitArea: { // 分割領域 show: false,
    エリアスタイル: {},
  },
},

最大および最小の目盛りラベル

主な属性は間隔です。これは、最大および最小の目盛りラベルのみを表示するのに十分な大きさに設定する必要があります。

x軸:
  軸ラベル: {
    // 間隔: "自動"、
    interval: 50, // 最大と最小の座標のみを表示 showMinLabel: true, // 最小スケールのラベルを表示 showMaxLabel: true, // 最大スケールのラベルを表示 }
}

シリーズデータ列の一時停止のハイライト

const スタックバーシリーズ = {
  type: "bar", // 棒グラフ barWidth: 32, // 列の幅 stack: "total", // データの積み重ね showBackground: false, // 列の背景色を表示するかどうか // グラフィックスタイルとラベルスタイルを強調表示 emphasis: {
    // マウスをホバーすると、同じビジネス項目が強調表示され、他の項目はグラフィックからフェードアウトします // focus: "series",
    // デフォルト設定、現在のホバーデータのみがフェードアウトします focus: "none",
  },
};

オプション = {
  シリーズ: R.map(
    (お) =>
      R.merge(stackBarSeries, {
        名前: o,
      })、
    ["リンゴ"、"ナシ"、"桃"]
  )、
};

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

主なことは、ツールチッププロンプトボックスコンポーネントのトリガーを設定してx軸サスペンションをトリガーすることです。次に、xAxis座標インジケータaxisPointerを設定し、インジケータマスクスタイルshadowStyleでグラデーションカラーを設定できます。

オプション = {
  ツールチップ: {
    //プロンプト ボックス コンポーネント トリガー: "axis", //軸トリガー},
  x軸:
    // 軸ポインタ axisPointer: {
      タイプ:「影」、
      // 座標軸インジケータのz値はグラフィックスの順序を制御しますz: 1,
      // インジケーターマスクスタイル shadowStyle: {
        // ホバー背景色のグラデーション問題を解決する color: {
          タイプ: "線形"、
          x: 0,
          y: 0,
          x2: 0,
          y2: 1,
          カラーストップ: [
            {
              オフセット: 0,
              color: "rgba(234,244,255,1)", // 0% の色},
            {
              オフセット: 1,
              color: "rgba(234,244,255,0.3)", // 100% 色},
          ]、
          global: false, // デフォルトは false
        },
        //背景色と影を設定//color: "rgba(234,244,255,1)",
        // 不透明度: 1,
        // 影の色: "rgba(0, 0, 0, 0.5)",
        // 影ぼかし: 10,
        // シャドウオフセットX: 10,
        // 影オフセットY: 10,
      },
    },
  },
};

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

ツールチップのデフォルトのスタイルまたは値は開発要件を満たさない可能性があります。フォーマッタ関数を使用してカスタマイズできます。

オプション = {
  ツールチップ: {
    // プロンプト ボックス コンポーネント トリガー: "axis", // 座標軸トリガー パディング: [20, 16, 12, 16],
    背景色: "#fff",
    常にコンテンツを表示: false、
    フォーマッタ: 関数(パラメータ) {
      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;">¥${item.value[
                  アイテム.エンコード.y[0]
                ] || 0 </span>
              </div>`
            )
            。参加する("")}
            <div style="display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#333;padding-top:4px;margin-bottom:8px;line-height:1;">
            <span>合計</span>
            <span>¥${R.reduceRight(
              R.add、
              0,
              R.drop(1, パラメータ[0].値 || [])
            ) </span>
          </div>
        </div>`;
      html を返します。
    },
  },
};

Y軸の基本スタイル

オプション = {
  y軸: {
    タイプ: "値",
    最小間隔: 100,
    名前ギャップ: 8,
    軸ラベル: {
      色: "#808080",
      フォントサイズ: 10,
      // フォーマッタ: (値) => {
      // moneyFormatValue(値)を返します。
      // },
    },
    分割行: {
      線のスタイル:
        タイプ:「破線」、
        色: "#ebebeb",
        幅: 0.5、
      },
    },
  },
};

凡例 凡例スタイルのカスタマイズ

オプション = {
  グリッド: {
    左: 0,
    右: 12、
    下: 0,
    トップ: 68,
    ラベルを含む: true、
  },
  // 凡例設定 legend: {
    トップ: 32,
    左: -5、
    アイコン:「円」、
    itemHeight: 6, // アイコンのサイズを変更する itemGap: 24,
    テキストスタイル: {
      フォントサイズ: 12,
      色: "#333",
      padding: [0, 0, 0, -8], // テキストとアイコンの間の距離を変更します},
  },
};

要約する

Echart Bar ダブルバーチャートスタイルに関するこの記事はこれで終わりです。Echart Bar ダブルバーチャートスタイルの関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

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

<<:  VMware15 仮想マシン ブリッジ モードでインターネットにアクセスできない問題の解決方法

>>:  Centos7 環境でバイナリ インストール パッケージから mysql5.6 をインストールする方法の詳細な説明

推薦する

VUE+SpringBootはページング機能を実装します

この記事では主に、Vue + SpringBoot でページ分割されたリストデータを実装する方法を紹...

nginx を使用して正規表現で指定された URL リクエストを傍受する方法

nginx サーバーnginx は、静的ファイルの処理に非常に効率的な優れた Web サーバーです。...

vue+springbootでログイン認証コードを実現

この記事では、ログイン認証コードを実装するためのvue+springbootの具体的なコードを例とし...

複数のパッケージソースから同時にパッケージをロードするようにnpmを設定する方法

目次1. ローカルストレージを構築する2. npmパッケージを作成し、プライベートリポジトリにアップ...

MySQLはinet_atonとinet_ntoaを使用してIPアドレスデータを処理します。

この記事では、適切な形式を使用して IP アドレス データをデータベースに保存し、IP アドレスを簡...

JS配列の一般的な方法とテクニックを学び、マスターになりましょう

目次splice() メソッドjoin() メソッド逆() メソッドevery() メソッド削減()...

MySQLインデックスとは何ですか?わからない場合は聞いてください

目次概要二分木からB+木へクラスター化インデックス非クラスター化インデックスジョイントインデックスと...

現在使用されている設定ファイル my.cnf を表示する mysql メソッド (推奨)

my.cnfは、MySQL の起動時に読み込まれる設定ファイルです。通常は MySQL インストー...

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

境界プロパティの概要borderプロパティは要素の境界を設定します。境界線の3要素は、太さ、線の種類...

JSが絵柄デジタル時計を実現

この記事の例では、画像デジタル時計を実現するためのJSの具体的なコードを参考までに共有しています。具...

Apache FlinkCEP でタイムアウトステータス監視を実装するための詳細な手順

CEP - 複合イベント処理。ご注文後、一定期間内にお支払いの確認が取れませんでした。タクシーの配...

Nest.js のハッシュと暗号化の例の詳細な説明

0x0 はじめにまず、ハッシュアルゴリズムとは何でしょうか?メッセージやセッション項目など、一部のデ...

MYSQL クエリの効率を向上させる 10 の SQL ステートメント最適化テクニック

MySQL データベースの実行効率はプログラムの実行速度に大きな影響を与えます。データベースの効率的...

Vueは小さなフォーム検証機能を実装します

この記事では、フォーム検証を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

CSSのline-heightを継承する方法

Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...