Vue implementiert dreidimensionales Säulendiagramm basierend auf E-Charts

Vue implementiert dreidimensionales Säulendiagramm basierend auf E-Charts

Das dreidimensionale Säulendiagramm besteht aus drei Teilen: vorne, rechts und oben. Beim Zeichnen müssen Sie die Vorderseite als Grafik, die rechte und die obere als Grafik zeichnen, sie dann in echats registrieren und in renderItem in der Optionsreihe rendern

Der Code lautet wie folgt:

(1) Registrieren und Zeichnen von Grafiken

Registrierung () {
      let MyCubeRect = this.$echarts.graphic.extendShape({
        Form:
          x: 0,
          y: 0,
          Breite: 20,
          zBreite: 8,
          zHöhe: 4
        },
        BuildPath: Funktion (ctx, Form) {
          const api = shape.api
          const xAxisPoint = api.coord([shape.xValue, 0])
          const p0 = [Form.x, Form.y]
          const p1 = [Form.x - Form.Breite / 2, Form.y]
          const p4 = [Form.x + Form.Breite / 2, Form.y]
          const p2 = [Form.x - Form.Breite / 2, xAchsenpunkt[1]]
          const p3 = [Form.x + Form.Breite / 2, xAchsenpunkt[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()
        }
      })
      lass MyCubeShadow = this.$echarts.graphic.extendShape({
        Form:
          x: 0,
          y: 0,
          Breite: 20,
          zBreite: 8,
          zHöhe: 4
        },
        BuildPath: Funktion (ctx, Form) {
          const api = shape.api
          const xAxisPoint = api.coord([shape.xValue, 0])
          const p1 = [Form.x - Form.Breite / 2, Form.y]
          const p4 = [Form.x + Form.Breite / 2, Form.y]
          const p6 = [Form.x + Form.Breite / 2 + Form.zBreite, Form.y - Form.zHöhe]
          const p7 = [Form.x - Form.Breite / 2 + Form.zBreite, Form.y - Form.zHöhe]
          const p3 = [Form.x + Form.Breite / 2, xAchsenpunkt[1]]
          const 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()
        }
      })
      dies.$echarts.graphic.registerShape('MyCubeRect', MyCubeRect)
      dies.$echarts.graphic.registerShape('MyCubeShadow', MyCubeShadow)
    }

(2) Rendern von Grafiken

Balkendiagrammoption: {
        Tooltip: {
          Auslöser: 'Achse',
          Achsenzeiger:
            Typ: 'Kreuz',
            Etikett: {
              Hintergrundfarbe: '#6a7985'
            }
          }
        },
        Netz: {
          containLabel: wahr,
          oben: '30px',
          unten: '0px',
          links: '0px'
        },
        x-Achse:
          Typ: "Kategorie",
          Achsenbezeichnung: {
            Intervall: 0,
            Schriftgröße: Schriftgröße(12)
          },
          Achsenlinie: {
            anzeigen: falsch,
            Linienstil:
              Farbe: '#98b9c5'
            }
          },
          data: [] // Daten, die über das Backend js übergeben werden},
        yAchse: {
          Typ: "Wert",
          Achsenbezeichnung: {
            Schriftgröße: Schriftgröße(12)
          },
          Achsenlinie: {
            anzeigen: falsch,
            Linienstil:
              Farbe: '#98b9c5'
            }
          },
          geteilte Zeile: {
            Linienstil:
              Farbe: '#3a586a',
              Typ: ‚gestrichelt‘
            }
          }
        },
        Serie: [{
          Name: 'Energieverbrauch pro Flächeneinheit',
          Typ: "benutzerdefiniert",
          renderItem: (params, api) => {
            let Standort = api.Koordinate([api.Wert(0), api.Wert(1)])
            zurückkehren {
              Typ: "Gruppe",
              Kinder: [{
                Typ: "MyCubeRect",
                Form:
                  API,
                  xWert: api.value(0) - 0,5,
                  yWert: api.value(1),
                  x: Standort[0],
                  y: Standort[1]
                },
                Stil: api.style()
              },
              {
                Typ: 'MyCubeShadow',
                Form:
                  API,
                  xWert: api.value(0) - 0,5,
                  yWert: api.value(1),
                  x: Standort[0],
                  y: Standort[1]
                },
                Stil: {
                  füllen: api.style(),
                  text: ''
                }
              }]
            }
          },
          Stapel: 'Energieverbrauch pro Flächeneinheit',
          Etikett: {
            zeigen: wahr,
            Position: 'oben',
            Formatierer: "{c}",
            Textstil: {
              Schriftgröße: Schriftgröße(12),
              Farbe: '#fff',
              ausrichten: "zentriert"
            }
          },
          Artikelstil: {
            Farbe: neu dies.$echarts.graphic.LinearGradient(
              0, 0, 0, 1,
              [
                { Offset: 0, Farbe: '#b1950d' },
                { Offset: 0,5, Farbe: '#aea20d' },
                { Offset: 1, Farbe: '#a5aa12' }
              ]
            )
          },
          data: [] //Vom Backend übergebene Daten}]
      }

Notiz:

1) Beim Registrieren von Grafiken, Stil: nur Stil kann verwendet werden: api.style();
Text: ''Sie können später das Label verwenden, um den Wert über dem Diagramm zu platzieren
2) this.$echarts wird einheitlich verpackt und die spezifische Situation muss speziell berücksichtigt werden.
3) Grafiken generieren

generateBarChart() {
      lass vm = dies
      if (this.$refs['uintEnergyConsume']) { //this.$refs ist der Referenzwert des generierten Grafikbereichs this.$echarts.graphic.registerShape('MyCubeRect', this.MyCubeRect)
        dies.$echarts.graphic.registerShape('MyCubeShadow', dies.MyCubeShadow)
        dies.barChart = dies.$echarts.init(dies.$refs['uintEnergyConsume'])
        this.barChart.setOption(this.barChartOption, falsch, wahr)
        $(window).resize(function () { //Bildschirmanpassung vm.handleResize()
        })
      }
    }

(4) Code im Template

<div ref="uintEnergyConsume" id="uintEnergyConsume" Klasse="Chart-Container" 
 style="width: 100%;" element-loading-text="Wird geladen..."></div>
</div>

(5) Die Wirkungen sind wie folgt:

Referenzgrafik-URL: Vue verwendet Echarts, um ein dreidimensionales Balkendiagramm zu implementieren

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vue Echarts implementiert Säulendiagramm mit Scroll-Effekt
  • Vue+echarts realisiert 3D-Säulendiagramm
  • Vue verwendet E-Charts, um ein Beispiel für ein horizontales Säulendiagramm zu implementieren
  • Implementieren eines einfachen Säulendiagramms mit D3.js+Vue
  • Vue verwendet Echarts, um ein dreidimensionales Balkendiagramm zu implementieren
  • Vue echarts realisiert horizontales Balkendiagramm
  • Vue echarts realisiert die dynamische Anzeige von Balkendiagrammen
  • Vue+echarts realisiert gestapelte Balkendiagramme
  • So verwenden Sie Balkendiagramme in Vue und ändern die Konfiguration selbst
  • Vue verwendet Echarts, um ein dreidimensionales Säulendiagramm zu implementieren

<<:  Remote-Bereitstellung von Maven-Projekten && So konfigurieren Sie eine Datenbankverbindung mit Tomcat

>>:  MySQL 8.0.20 Installations- und Konfigurations-Tutorial unter Docker

Artikel empfehlen

So verleihen Sie einer Website ein höheres und ansprechenderes Aussehen

„Wie lässt man eine Website hochwertig aussehen? ...

Detaillierte Erklärung der .bash_profile-Datei im Linux-System

Inhaltsverzeichnis 1. Umgebungsvariable $PATH: 2....

Detaillierte Erklärung von Softlinks und Hardlinks in Linux

Inhaltsverzeichnis 1. Grundlegende Speicherung vo...

So installieren Sie einen SVN-Server unter Linux

1. Yum-Installation yum installiere Subversion 2....

Neue Blockbereichsfunktion von JavaScript ES

Inhaltsverzeichnis 1. Was ist Blockbereich? 2. Wa...

VMware Workstation 12 installiert Ubuntu 14.04 (64 Bit)

1. Installationsumgebung Computermodell: Lenovo Y...

Einführung in die Verwendung sowie Vor- und Nachteile von MySQL-Triggern

Inhaltsverzeichnis Vorwort 1. Trigger-Übersicht 2...

Informationen zum Debuggen von CSS-Cross-Browser-Style-Fehlern

Als Erstes müssen Sie einen guten Browser auswähl...

MySQL InnoDB MRR-Optimierungshandbuch

Vorwort MRR ist die Abkürzung für Multi-Range Rea...