Vue+echart で 2 列チャートを実現

Vue+echart で 2 列チャートを実現

この記事では、vue+echart を使って二重列チャートを実現するための具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

効果画像:

1. インストール

推奨バージョンは「echarts」:「^4.8.0」です。echarts以外の場合、initはエラーを報告します。

1. まず、echarts依存パッケージをインストールする必要があります

npm インストール --save echarts@4.8.0

2. または国内のTaobaoミラーを使用する:

npm をインストール -g cnpm --registry=https://registry.npm.taobao.org
<テンプレート>
  <div class="echarts_con">
    <div
      クラス="echarts_main"
      ref="ダイアログルート"
      title="ノードインジケーター"
      @close="データを非表示()"
    >
      <!-- 負荷条件 -->
      <div
        ref="bar_dv"
        :style="{
          幅: '100%'、
          最小高さ: '300px'、
        }"
      </div>
    </div>
  </div>
</テンプレート>
 
<スクリプト>
'echarts' から echarts をインポートします
// './image/hot_icon.png' から myIcon をインポート // カスタムアイコン // './image/hot_icon.png' から averageIcon をインポート
エクスポートデフォルト{
  名前:「Echarts」、
  データ () {
    戻る {
      最大Str: 400,
      y間隔: 80,
      私のデータ: [122, 45, 67, 78, 46],
      平均データ: [32, 34, 6, 73, 84, 40]
    }
  },
  //データが外部から渡される場合は、データの開始を監視する必要があります
  // プロパティ: {
  // マイデータ: {
  // タイプ: 配列、
  // デフォルト: []
  // },
  // 平均データ: {
  // タイプ: 配列、
  // デフォルト: []
  // }
  // },
  // 計算: {
  // 住所 () {
  // const { myData, averageData } = this
  // 戻る {
  // マイデータ、
  // 平均データ
  // }
  // }
  // },
  // 時計: {
  // 住所: {
  // ハンドラ: function (val) {
  // this.compare(val.myData、val.averageData) を比較します
  // newArr = val.myData.concat(val.averageData) とします
  // maxNum = Math.max(...newArr) とします
  // this.maxStr = maxNum
  // 最大数 >= 500 の場合 {
  // this.yInterval = 200
  // } それ以外 {
  // this.yInterval = 50
  // }
  // this.drawLine(val.myData, val.averageData)
  // },
  // 深い: 真

  // }
  // },
  // マウント済み () {
  // this.$nextTick(関数() {
  // this.drawLine();
  // });
  // },
  //外部からデータが渡された場合は、データの終了を監視する必要があります

  マウントされた(){
    this.drawLine(this.myData、this.averageData) は、
  },
  メソッド: {
    //1対1の対応するデータが平均より低い場合は、prompt compare (arr1, arr2) {
      (arr1[0] < arr2[0])の場合{
        this.isCompare = true
      } そうでなければ (arr1[1] < arr2[1]) {
        this.isCompare = true
      } そうでなければ (arr1[2] < arr2[2]) {
        this.isCompare = true
      } そうでなければ (arr1[3] < arr2[3]) {
        this.isCompare = true
      } それ以外 {
        this.isCompare = false
      }
    },
    クリックして閉じる(){
      this.isCompare = false
    },
    /*ステータスアイコンを読み込む*/
    線を引く(a, b) {
      var myData = a;
      var 平均データ = b;
      bar_dv = this.$refs.bar_dv とします。
      myChart = echarts.init(bar_dv); とします。
      var autoHeight = parseInt(this.maxStr / 100) * 10 + 100;
      myChart.getDom().style.height = autoHeight + "px";
      myChart.resize(); // 適応型の高さ // チャートを描画 myChart.setOption({
        タイトル: { テキスト: 'レポート表示' },
        グリッド: {
          // 残り: 40,
          含むラベル: true
        },
        ツールチップ: {},
        x軸:
          データ: ["プロフィールを閲覧した"、"連絡を取った"、"履歴書を受け取った"、"公開した人数"]、
          軸線: {
            線のスタイル:
              タイプ: 'ソリッド'、
              color: '#eeeeee', //x の左の線の色 fontSize: 13,
              width: '0.5' //座標線の幅}
          },
          axisLabel: { //x軸フォント textStyle: {
              色: '#333333',
              フォントサイズ: 13
            }
          },
        },
        y軸: {
          タイプ: '値',
          最小: 0,
          最大: this.maxStr、
          間隔: this.yInterval、
          軸線: {
            線のスタイル:
              タイプ: 'ソリッド'、
              color: '#fff', //左線の色 width: '0.5' //座標線の幅}
          },
          軸ラベル: {
            テキストスタイル: {
              色: '#333333',
              フォントサイズ: 13
            }
          },
          分割行: {
            表示: true、
            線のスタイル:
              色: ['#eeeeee'],
              幅: 1,
              タイプ: 'ソリッド'
            }
          }

        },
        伝説: {
          アイテム幅: 11,
          アイテムの高さ: 12,
          シンボルキープアスペクト: true、
          テキストスタイル: {
            フォントサイズ: 11,
            行の高さ: 0,
            背景色: "rgba(11, 164, 19, 1)"
          },
          // アイコン: `image://${averageIcon}`,

          データ: [
            {
              名前: 'My',
              // アイコン: `image://${myIcon}`//カスタムの小さいアイコン},
            {
              名前: 「業界平均」
              // アイコン: `image://${averageIcon}`
            }
          ]、
          配置: '左'、
          右: 40,
          上: '0'、
          テキストスタイル: {
            フォントサイズ: 12,
            テキスト配置: 'center'、
            色: '#333333',
            magrin右: 3
          },
        },
        シリーズ: [{
          名前: 'My',
          タイプ: 'バー'、
          データ: myData、
          barWidth: 16, //列幅 barGap: '50%', //間隔 label: {
            表示: true、
            位置: 'トップ'、
            テキストスタイル: {
              色: '#4695F3'
            },
            フォーマッタ: 関数 (パラメータ) {
              パラメータ値を返す
            }
          },
          アイテムスタイル: {
            普通: {
              色: 新しい echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                オフセット: 0,
                色: '#A5CCF6'
              }, {
                オフセット: 1,
                色: '#4695F3'
              }])、
              バー境界半径: [4, 4, 0, 0],
            }
          }
        },
        {
          名前: 「業界平均」
          タイプ: 'バー'、
          データ: 平均データ、
          バー幅: 16,
          バーギャップ: '50%',
          ラベル: {
            表示: true、
            位置: 'トップ'、
            テキストスタイル: {
              色: '#FE8401'
            },
            フォーマッタ: 関数 (パラメータ) {
              パラメータ値を返す
            }
          },
          アイテムスタイル: {
            普通: {
              色: 新しい echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                オフセット: 0,
                色: '#FFB235'
              }, {
                オフセット: 1,
                色: '#FE8401'
              }])、
              バー境界半径: [4, 4, 0, 0],
            },
            強調:
              バー境界半径: 30
            },
          }
        }
        ]
      }、 真実);
    },

    データを非表示にする() {
      this.$emit("hideDialog")
    },

    確認する () {
      データを非表示にする
    },

  }
}
</スクリプト>
 
<スタイルスコープ>
.echarts_con {
  幅: 100%;
  マージン: 0 自動;
  上マージン: 8px;
  境界線の半径: 20px;
  背景: #fff;
  パディング下部: 35px;
}
.echarts_main {
  幅: 100%;
  マージン: 0 自動;
  パディング上部: 20px;
  下マージン: -32px;
  右マージン: 20px;
  左マージン: 20px;
}
。底 {
  幅: 90%;
  マージン: 0 自動;
  背景: #fef8e1;
  境界線の半径: 6px;
  高さ: 100%;
  上マージン: 16px;
}
.bottom_con {
  幅: 90%;
  マージン: 0 自動;
  ディスプレイ: フレックス;
  コンテンツの両端揃え: スペースの間;
  アイテムの位置を中央揃えにします。
  高さ: 34px;
  行の高さ: 34px;
}
.bottom_text {
  高さ: 34px;
  行の高さ: 34px;
  フォントサイズ: 13px;
  フォントファミリー: PingFang、PingFang-SC;
  フォントの太さ: SC;
  テキスト配置: 左;
  色: #fa5d1d;
}
.right_close {
  幅: 13px;
  高さ: 13px;
}
</スタイル>

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue+Echartは3次元の縦棒グラフを実現します
  • VueはEchartアイコンプラグインの棒グラフを使用します
  • Echarts を使用して棒グラフを描く vue の詳細な説明
  • Vue+Echart 棒グラフで疫病データ統計を実現
  • Vue echarts は水平棒グラフを実現します
  • Vueは水平の斜めの棒グラフを実装します
  • Vue+echarts で積み上げ棒グラフを実現
  • Vue+echarts でプログレスバーのヒストグラムを実現
  • VueはEchartsを使用して3次元棒グラフを実装します
  • Vue+ Antv F2 は積み上げ棒グラフを実現します

<<:  TomcatのmaxPostSize属性を設定する際に注意する必要がある問題を解決する

>>:  IDEA は MySQL への接続時にエラーを報告します。サーバーが無効なタイムゾーンを返します。タブに移動して serverTimezone プロパティを設定してください。

推薦する

ホバー画像のポップアウトポップアップ効果を実現するための純粋な CSS のサンプルコード

実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...

MySQLの連結関数CONCATの使い方の詳しい説明

前回の記事では、MySQL の置換関数 (Replace) とセグメンテーション関数 (SubStr...

MySQL の完全なデータベース バックアップからデータベースとテーブルを復元する方法

公式の MySQL ダンプ ツールで、特定のデータベースのみを復元するにはどうすればよいですか?完全...

MySQL の nvl() 関数に似た ifnull() 関数についての簡単な説明

IFNULL(式1,式2) expr1 が NULL でない場合、IFNULL() は expr1 ...

Docker Nginxコンテナの制作と展開の実装方法

クイックスタート1. Docker Hubでnginxイメージを見つけるdocker 検索 ngin...

Vue は Ctrip のカルーセル効果を模倣します (スライディング カルーセル、以下は高度に適応)

まずケースを見てみましょう。vue+swiper を使用して実装します。スライドの高さが異なる場合、...

CSS マージンの重複とその防止方法

2 つ以上のブロックレベル ボックスの垂直に隣接するエッジが重なり合っています。結果として得られる境...

ハッシュテーブルのJavaScript実装の詳細な説明

目次1. ハッシュテーブルの原理2. ハッシュテーブルの概念3. ハッシュ競合問題1. チェーンアド...

MySQLからMariaDBへのスムーズな移行のための詳細な手順

1. MariaDB と MySQL の紹介1. MariaDB の紹介MariaDB は、MySQ...

HTMLインライン要素とブロックレベル要素の基本概念と使用例

HTML タグには、インライン要素とブロックレベル要素の 2 種類があります。まず、インライン要素と...

Vue3 の SetUp 関数のプロパティとコンテキスト パラメータの詳細な説明

1. setUp関数の最初のパラメータpropsセットアップ(プロパティ、コンテキスト){}最初のパ...

MySQL 8.0.23 メジャーアップデート (新機能)

著者: Guan Changlong は、Aikesheng の配送サービス部門の DBA です。主...

JavaScript の例におけるループの使用法の詳細な説明

退屈だったので、ループに関する簡単な演習をいくつかまとめてみました。JS を学び始めたばかりの方に役...

JavaScriptのクローン作成についての簡単な説明

目次1. 浅いクローニング2. ディープクローニング1. 浅いクローニング浅いクローンでは配列やオブ...

正規表現に基づくあいまい文字列置換を実装するMySQLの方法の分析

この記事では、例を使用して、MySQL を使用して正規表現に基づくあいまい文字列置換を実装する方法を...