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 を使用してデータベース接続を構成する方法
序文最近、私は小さな個人ブログ プロジェクトを書くのに忙しくしています。 「グローバル検索」機能を実...
目次序文計算されたプロパティ計算プロパティの紹介入門ケース統計価格事例ゲッターメソッドとセッターメソ...
1.まずMysqlリンク設定ページを書く パッケージ com.wretchant.fredis.me...
序文データベース トランザクションに関して言えば、トランザクションの ACID 特性、分離レベル、解...
概要バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために...
序文配列は特別な種類のオブジェクトです。 js には実際の配列はなく、オブジェクトを使用して配列をシ...
序文Zabbix は最も主流のオープンソース監視ソリューションの 1 つです。導入自体は難しくありま...
Oracle データベースから MySQL データベースへの移行では、Oracle データベース モ...
ホスト名を変更する場合は、以下の手順に従ってください。ホスト名の使用hostnameコマンドを使用す...
Grafana をインストールします。公式 Web サイトでは、直接インストールできる Ubuntu...
FlashFXPのダウンロードアドレスは、https://www.jb51.net/softs/95...
この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...
[LeetCode] 182.重複メールPerson という名前のテーブル内のすべての重複メールを...
プロジェクト中、プログレスバーを実装するために js の requestAnimationFrame...
私のシステムとソフトウェアのバージョンは次のとおりです。システム環境: win7、64ビットMySQ...