Vueはechartsに基づいて3次元の縦棒グラフを実装します

Vueはechartsに基づいて3次元の縦棒グラフを実装します

3次元縦棒グラフは、正面、右側、上部の3つの部分で構成されています。描画するときは、正面をグラフィックとして、右側と上部をグラフィックとして描画し、echatsに登録し、オプションのシリーズのrenderItemでレンダリングする必要があります。

コードは次のとおりです。

(1)グラフィックの登録と描画

レジストリ(){
      MyCubeRect = this.$echarts.graphic.extendShape({
        形:
          x: 0,
          y: 0,
          幅: 20,
          z幅: 8,
          高さ: 4
        },
        ビルドパス: 関数 (ctx, シェイプ) {
          定数api = shape.api
          定数 xAxisPoint = api.coord([shape.xValue, 0])
          定数 p0 = [形状.x, 形状.y]
          定数 p1 = [shape.x - shape.width / 2, shape.y]
          定数 p4 = [shape.x + shape.width / 2, shape.y]
          定数p2 = [shape.x - shape.width / 2, xAxisPoint[1]]
          定数p3 = [shape.x + shape.width / 2, xAxisPoint[1]]

          ctx.moveTo(p0[0], p0[1])
          ctx.lineTo(p1[0], p1[1])
          ctx.lineTo(p2[0], p2[1])
          ctx.lineTo(p3[0], p3[1])
          ctx.lineTo(p4[0], p4[1])
          ctx.lineTo(p0[0], p0[1])
          ctx.closePath()
        }
      })
      MyCubeShadow = this.$echarts.graphic.extendShape({
        形:
          x: 0,
          y: 0,
          幅: 20,
          z幅: 8,
          高さ: 4
        },
        ビルドパス: 関数 (ctx, シェイプ) {
          定数api = shape.api
          定数 xAxisPoint = api.coord([shape.xValue, 0])
          定数 p1 = [shape.x - shape.width / 2, shape.y]
          定数 p4 = [shape.x + shape.width / 2, shape.y]
          定数 p6 = [shape.x + shape.width / 2 + shape.zWidth, shape.y - shape.zHeight]
          定数 p7 = [shape.x - shape.width / 2 + shape.zWidth, shape.y - shape.zHeight]
          定数p3 = [shape.x + shape.width / 2, xAxisPoint[1]]
          定数 p5 = [shape.x + shape.width / 2 + shape.zWidth, xAxisPoint[1] - shape.zHeight]

          ctx.moveTo(p4[0], p4[1])
          ctx.lineTo(p3[0], p3[1])
          ctx.lineTo(p5[0], p5[1])
          ctx.lineTo(p6[0], p6[1])
          ctx.lineTo(p4[0], p4[1])

          ctx.moveTo(p4[0], p4[1])
          ctx.lineTo(p6[0], p6[1])
          ctx.lineTo(p7[0], p7[1])
          ctx.lineTo(p1[0], p1[1])
          ctx.lineTo(p4[0], p4[1])
          ctx.closePath()
        }
      })
      this.$echarts.graphic.registerShape('MyCubeRect', MyCubeRect)
      this.$echarts.graphic.registerShape('MyCubeShadow', MyCubeShadow)
    }

(2)グラフィックスのレンダリング

バーチャートオプション: {
        ツールチップ: {
          トリガー: '軸'、
          軸ポインタ:
            タイプ: 'クロス'、
            ラベル: {
              背景色: '#6a7985'
            }
          }
        },
        グリッド: {
          ラベルを含む: true、
          上: '30px'、
          下: '0px'、
          左: '0px'
        },
        x軸:
          タイプ: 'カテゴリ',
          軸ラベル: {
            間隔: 0,
            フォントサイズ: フォントサイズ(12)
          },
          軸線: {
            表示: 偽、
            線のスタイル:
              色: '#98b9c5'
            }
          },
          data: [] // バックエンド js を通じて渡されるデータ},
        y軸: {
          タイプ: '値',
          軸ラベル: {
            フォントサイズ: フォントサイズ(12)
          },
          軸線: {
            表示: 偽、
            線のスタイル:
              色: '#98b9c5'
            }
          },
          分割行: {
            線のスタイル:
              色: '#3a586a',
              タイプ: '破線'
            }
          }
        },
        シリーズ: [{
          名前:「単位面積あたりのエネルギー消費量」
          タイプ: 'カスタム'、
          レンダリングアイテム: (パラメータ、API) => {
            location = api.coord([api.value(0), api.value(1)]) とします。
            戻る {
              タイプ: 'グループ'、
              子供たち: [{
                タイプ: 'MyCubeRect',
                形:
                  アピ、
                  x値: api.value(0) - 0.5、
                  y値: api.value(1)、
                  x: 場所[0],
                  y: 場所[1]
                },
                スタイル: api.style()
              },
              {
                タイプ: 'MyCubeShadow',
                形:
                  アピ、
                  x値: api.value(0) - 0.5、
                  y値: api.value(1)、
                  x: 場所[0],
                  y: 場所[1]
                },
                スタイル: {
                  塗りつぶし: api.style(),
                  文章: ''
                }
              }]
            }
          },
          スタック: 「単位面積あたりのエネルギー消費量」、
          ラベル: {
            表示: true、
            位置: 'トップ'、
            フォーマッタ: '{c}',
            テキストスタイル: {
              フォントサイズ: フォントサイズ(12)
              色: '#fff',
              配置: '中央'
            }
          },
          アイテムスタイル: {
            色: 新しい this.$echarts.graphic.LinearGradient(
              0、0、0、1、
              [
                { オフセット: 0、色: '#b1950d' },
                { オフセット: 0.5、色: '#aea20d' },
                { オフセット: 1、色: '#a5aa12' }
              ]
            )
          },
          data: [] //バックエンドから渡されるデータ}]
      }

注記:

1) グラフィックを登録する場合、スタイルのみを使用できます: api.style();
テキスト: ''ラベルを使用して後でグラフの上に値を配置できます
2) this.$echarts は均一にパッケージ化されており、具体的な状況を具体的に考慮する必要があります。
3) グラフィックを生成する

バーチャートを生成する() {
      vm = this とします
      if (this.$refs['uintEnergyConsume']) { //this.$refs は生成されたグラフィック領域の参照値です this.$echarts.graphic.registerShape('MyCubeRect', this.MyCubeRect)
        this.$echarts.graphic.registerShape('MyCubeShadow', this.MyCubeShadow)
        this.barChart = this.$echarts.init(this.$refs['uintEnergyConsume'])
        this.barChart.setOption(this.barChartOption、false、true)
        $(window).resize(function () { //画面の適応 vm.handleResize()
        })
      }
    }

(4)テンプレート内のコード

<div ref="uintEnergyConsume" id="uintEnergyConsume" class="chart-container" 
 style="width: 100%;" element-loading-text="読み込み中..."></div>
</div>

(5)その効果は以下のとおりである。

参照グラフィックURL: VueはEchartsを使用して3次元棒グラフを実装します

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

以下もご興味があるかもしれません:
  • Vue Echarts はスクロール効果のある縦棒グラフを実装します
  • Vue+echarts は 3D 縦棒グラフを実現します
  • Vueはechartsを使用して水平方向の列グラフの例を実装します
  • D3.js+Vue を使用したシンプルな縦棒グラフの実装
  • VueはEchartsを使用して3次元棒グラフを実装します
  • Vue echarts は水平棒グラフを実現します
  • Vue echarts は棒グラフの動的な表示を実現します
  • Vue+echarts で積み上げ棒グラフを実現
  • Vue で棒グラフを使用し、自分で設定を変更する方法
  • Vueはechartsを使用して3次元の縦棒グラフを実装します

<<:  MySQL 8.0.20 winx64 のインストールと設定方法のグラフィックチュートリアル

>>:  Maven プロジェクトのリモート デプロイメント && Tomcat を使用してデータベース接続を構成する方法

推薦する

Linux コマンドラインのワイルドカードとエスケープ文字の実装

ハードディスクのファイル属性のバッチ表示など、特定の種類のファイルに対してバッチ操作を実行する場合、...

mysql インストーラ コミュニティ 8.0.12.0 インストール グラフィック チュートリアル

このチュートリアルでは、参考のためにmysqlインストーラコミュニティ8.0.12.0のインストール...

MySQL クロステーブルクエリとクロステーブル更新

SQL の基礎知識がある友人は、「クロステーブル クエリ」について聞いたことがあるはずですが、クロス...

初心者のためのWebページ作成: HTMLのハイパーリンクAタグの使い方を学ぶ

ハイパーリンク a タグはリンク ポイントを表し、英語の単語「anchor」の略語です。その機能は、...

JavaScriptはクリックトグル機能を実装します

この記事の例では、クリックして切り替える機能を実装するためのJavaScriptの具体的なコードを参...

CentOS に PHP5 をインストール、PHP をアンインストール、PHP7 をインストールするチュートリアル

まず、PHP5をインストールするのはとても簡単ですyum install php PHP5 を使用し...

TypeScript における列挙型の理解と応用シナリオ

目次1. 何ですか2. 使用数値列挙文字列列挙異種列挙自然3. 応用シナリオ要約する1. 何ですか列...

ネイティブJSで禁止すべきメソッドの記述

目次ブロックレベル関数オブジェクトのプロトタイプを直接変更すると呼び出された人発信者評価ブロックレベ...

IE8対応のボーダー半径処理方法

canisue (http://caniuse.com/#search=border-radius)...

uniapp vue および nvue カルーセル コンポーネントのサンプル コード

vueの部分は以下のとおりです。 <テンプレート> <ビュークラス="&...

JavaScriptでよく使われる配列重複排除実戦ソースコード

アレイの重複排除は、通常、就職面接中に遭遇し、アレイの重複排除方法のコードを手動で記述することが求め...

MySql はコミットする必要がありますか?

MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...

vscodeカスタムvueテンプレートの実装

vscode エディタを使用して vue テンプレートを作成すると、新しい vue ファイルを作成す...

CSSスクロールバーのスタイルをカスタマイズする方法の詳細な説明

この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザ...

Mac での MySql の詳細なインストールと構成

1.ダウンロードしてインストールする公式ウェブサイトからコミュニティ エディションの dmg インス...