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(); バーチャートを生成する() { 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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL 8.0.20 winx64 のインストールと設定方法のグラフィックチュートリアル
>>: Maven プロジェクトのリモート デプロイメント && Tomcat を使用してデータベース接続を構成する方法
ハードディスクのファイル属性のバッチ表示など、特定の種類のファイルに対してバッチ操作を実行する場合、...
このチュートリアルでは、参考のためにmysqlインストーラコミュニティ8.0.12.0のインストール...
SQL の基礎知識がある友人は、「クロステーブル クエリ」について聞いたことがあるはずですが、クロス...
ハイパーリンク a タグはリンク ポイントを表し、英語の単語「anchor」の略語です。その機能は、...
この記事の例では、クリックして切り替える機能を実装するためのJavaScriptの具体的なコードを参...
まず、PHP5をインストールするのはとても簡単ですyum install php PHP5 を使用し...
目次1. 何ですか2. 使用数値列挙文字列列挙異種列挙自然3. 応用シナリオ要約する1. 何ですか列...
目次ブロックレベル関数オブジェクトのプロトタイプを直接変更すると呼び出された人発信者評価ブロックレベ...
canisue (http://caniuse.com/#search=border-radius)...
vueの部分は以下のとおりです。 <テンプレート> <ビュークラス="&...
アレイの重複排除は、通常、就職面接中に遭遇し、アレイの重複排除方法のコードを手動で記述することが求め...
MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...
vscode エディタを使用して vue テンプレートを作成すると、新しい vue ファイルを作成す...
この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザ...
1.ダウンロードしてインストールする公式ウェブサイトからコミュニティ エディションの dmg インス...