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

Ausführliches Tutorial zur Installation und Konfiguration von MySQL 8.0.20

In diesem Artikel finden Sie eine ausführliche An...

So stellen Sie ein Vue-Projekt unter Nginx bereit

Heute werde ich den Server nginx verwenden und mu...

Implementierung der Installation von Docker in einer Win10-Umgebung

1. Rufen Sie die offizielle Docker-Website auf Ge...

Implementierungsprinzip und Konfiguration der MySql Master-Slave-Replikation

Die Trennung von Lese- und Schreibzugriffen in Da...

4 Funktionen, die durch das Transform-Attribut in CSS3 implementiert werden

In CSS3 können mit der Transformationsfunktion vi...

So zeigen Sie den Status von Remote-Serverdateien in Linux an

Wie unten dargestellt: Der Testbefehl stellt fest...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.17

In diesem Artikel wird die Installations- und Kon...

JavaScript-Code zur Implementierung eines einfachen Rechners

In diesem Artikelbeispiel wird der spezifische Ja...

Detaillierte Erklärung der Gründe, warum MySQL-Verbindungen hängen bleiben

Inhaltsverzeichnis 1. Hintergrund Architektur Pro...