Echarts-Beispielcode zur Verwendung mehrerer X-Achsen zur Erstellung einer siebentägigen Wettervorhersage

Echarts-Beispielcode zur Verwendung mehrerer X-Achsen zur Erstellung einer siebentägigen Wettervorhersage

UI-Design

Design-Effekt

Echarts Beispieleffekt

Beispieleffekt

Vorwort

Für die von der Benutzeroberfläche bereitgestellten Entwurfszeichnungen haben verschiedene meteorologische Websites ähnliche Auswirkungen, und die Implementierungsmethoden können in zwei Kategorien unterteilt werden:

  1. Rasterlayout + Diagrammrahmen zum Zeichnen der Temperaturkurve;
  2. Rasterlayout + selbstgezeichnete Temperaturkurve auf Leinwand;

Der gemeinsame Punkt dieser beiden Implementierungsmethoden besteht darin, dass die Kurve und der Beschreibungstext oben getrennt sind. Die Schwierigkeit dabei besteht darin, eine adaptive Ausrichtung des Datumssymbolteils und des Temperaturkurventeils zu erreichen. Da meine CSS-Erfahrung verhältnismäßig gering ist und ich das Diagramm-Framework Echarts verhältnismäßig häufiger verwende, habe ich beschlossen, es mit Echarts ( Version 4.6.0 ) zu versuchen, um den oben genannten Effekt zu erzielen. Nachdem ich das Dokument überprüft hatte, stellte ich fest, dass Echarts mehrere X-Achsen und Rich-Text-Anzeigen unterstützt. Die Anzeigeposition kann durch Anpassen des X-Achsen-Offsets gesteuert werden. Gleichzeitig unterstützt Rich Text das Festlegen von Hintergrundsymbolen, mit denen Wettersymbole angezeigt werden können. Nach einigen Tests habe ich den folgenden Beispielcode erhalten.

Beispielcode

Der folgende Code kann in Echarts importiert und direkt ausgeführt werden:

var option = {
        Netz: {
          zeigen: wahr,
          Hintergrundfarbe: 'transparent',
          Deckkraft: 0,3,
          Rahmenbreite: '0',
          oben: '180',
          unten: '0'
        },
        Tooltip: {
          Auslöser: ‚Achse‘
        },
        Legende: {
          anzeigen:false
        },
        xAchse: [
          // Datum{
            Typ: "Kategorie",
            boundageGap: falsch,
            Position: 'oben',
            Einpresstiefe: 130,
            z-Ebene: 100,
            Achsenlinie: {
              anzeigen:false
            },
            AchseTick: {
              anzeigen:false
            },
            Achsenbezeichnung: {
              Intervall: 0,
              Formatierer: [
                „{a|{Wert}}“
              ].join('\n'),
              reich:
                A: {
                  // Farbe: 'weiß',
                  Schriftgröße: 18
                }
              }
            },
            NameTextStyle: {

            },
            Daten: ["25.","26.","27.","28.","29.","30.","31."]
          },
          // Woche{
            Typ: "Kategorie",
            boundageGap: falsch,
            Position: 'oben',
            Einpresstiefe: 110,
            z-Ebene: 100,
            Achsenlinie: {
              anzeigen:false
            },
            AchseTick: {
              anzeigen:false
            },
            Achsenbezeichnung: {
              Intervall: 0,
              Formatierer: [
                „{a|{Wert}}“
              ].join('\n'),
              reich:
                A: {
                  // Farbe: 'weiß',
                  Schriftgröße: 14
                }
              }
            },
            NameTextStyle: {
              Schriftstärke: "fett",
              Schriftgröße: 19
            },
            Daten: ["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]
          },
          // Wettersymbol {
            Typ: "Kategorie",
            boundageGap: falsch,
            Position: 'oben',
            Versatz: 20,
            z-Ebene: 100,
            Achsenlinie: {
              anzeigen:false
            },
            AchseTick: {
              anzeigen:false
            },
            Achsenbezeichnung: {
              Intervall: 0,
              Formatierer: Funktion (Wert, Index) {
                gibt '{' + Index + '| }\n{b|' + Wert + '}' zurück
              },
              reich:
                0: {
                  Hintergrundfarbe:
                    // Bild: erfordern('@/assets/weather_icon/' + this.weatherIconDic[this.weatherdata.weather[0]] + '.png')
                    Bild: „https://d.scggqx.com/forecast/img/小雨.png“
                  },
                  Höhe: 40,
                  Breite: 40
                },
                1: {
                  Hintergrundfarbe:
                    // Bild: require('@/assets/weather_icon/' + this.weatherIconDic[this.weatherdata.weather[1]] + '.png')
                    Bild: „https://d.scggqx.com/forecast/img/小雨.png“
                  },
                  Höhe: 40,
                  Breite: 40
                },
                2: {
                  Hintergrundfarbe:
                    // Bild: erfordern('@/assets/weather_icon/' + this.weatherIconDic[this.weatherdata.weather[2]] + '.png')
                    Bild: „https://d.scggqx.com/forecast/img/阴.png“
                  },
                  Höhe: 40,
                  Breite: 40
                },
                3: {
                  Hintergrundfarbe:
                    // Bild: erfordern('@/assets/weather_icon/' + this.weatherIconDic[this.weatherdata.weather[3]] + '.png')
                    Bild: „https://d.scggqx.com/forecast/img/小雨.png“
                  },
                  Höhe: 40,
                  Breite: 40
                },
                4: {
                  Hintergrundfarbe:
                    // Bild: erfordern('@/assets/weather_icon/' + this.weatherIconDic[this.weatherdata.weather[4]] + '.png')
                    Bild: „https://d.scggqx.com/forecast/img/多云.png“
                  },
                  Höhe: 40,
                  Breite: 40
                },
                5: {
                  Hintergrundfarbe:
                    // Bild: erfordern('@/assets/weather_icon/' + this.weatherIconDic[this.weatherdata.weather[5]] + '.png')
                    Bild: „https://d.scggqx.com/forecast/img/小雨.png“
                  },
                  Höhe: 40,
                  Breite: 40
                },
                6: {
                  Hintergrundfarbe:
                    // Bild: erfordern('@/assets/weather_icon/' + this.weatherIconDic[this.weatherdata.weather[6]] + '.png')
                    Bild: „https://d.scggqx.com/forecast/img/小雨.png“
                  },
                  Höhe: 40,
                  Breite: 40
                },
                B: {
                  // Farbe: 'weiß',
                  Schriftgröße: 12,
                  Zeilenhöhe: 30,
                  Höhe: 20
                }
              }
            },
            NameTextStyle: {
              Schriftstärke: "fett",
              Schriftgröße: 19
            },
            // Daten: diese.Wetterdaten.Wetter
            Daten: ["leichter Regen","leichter Regen","bewölkt","leichter Regen","bewölkt","leichter Regen","leichter Regen"]
          }
        ],
        yAchse: {
          Typ: "Wert",
          anzeigen: falsch,
          Achsenbezeichnung: {
            Formatierer: '{Wert} °C',
            Farbe: 'weiß'
          }
        },
        Serie: [
          {
            Name: 'Maximale Temperatur',
            Typ: "Linie",
            Daten: ["16.3","16.2","17.6","14.2","17.6","15.7","14.3"],
            Symbol: 'leererKreis',
            Symbolgröße: 10,
            showSymbol: true,
            glatt: wahr,
            Artikelstil: {
              normal: {
                Farbe: '#C95843'
              }
            },
            Etikett: {
              zeigen: wahr,
              Position: 'oben',
              // Farbe: 'weiß',
              Formatierer: "{c} °C"
            },
            Linienstil:
              Breite: 1,
              // Farbe: 'weiß'
            },
            Bereichsstil: {
              Deckkraft: 1,
              Farbe: 'transparent'
            }
          },
          {
            Name: 'Minimale Temperatur',
            Typ: "Linie",
            Daten: ["13.4","12.8","13.5","12.5","12.4","13.2","13"],
            Symbol: 'leererKreis',
            Symbolgröße: 10,
            showSymbol: true,
            glatt: wahr,
            Artikelstil: {
              normal: {
                Farbe: 'blau'
              }
            },
            Etikett: {
              zeigen: wahr,
              Position: 'unten',
              // Farbe: 'weiß',
              Formatierer: "{c} °C"
            },
            Linienstil:
              Breite: 1,
              // Farbe: 'weiß'
            },
            Bereichsstil: {
              Deckkraft: 1,
              Farbe: 'transparent'
            }
          }
        ]
      }

Der schwierigste Teil des obigen Codes ist das Festlegen des Wettersymbols. Da der Wert in der Formatierungsmethode von axisLabel nicht im Rich-Text verwendet werden kann, wird der Index des Werts in der Formatierungsmethode auf den CSS-Namen im Rich-Text festgelegt. Anschließend wird der Index verwendet, um den Symbolnamen abzurufen, der beim Festlegen des Wettersymbols angezeigt werden soll.

//Formatierungsmethode für Achsenlabelformatter: function(value, index) {
 gibt '{' + Index + '| }\n{b|' + Wert + '}' zurück
}

// Rich-Methode von axisLabel rich: {
	Index: {
	     Hintergrundfarbe:
	       Bild: erforderlich('@/assets/weather_icon/' + this.weatherIconDic[this.weatherdata.weather[index]] + '.png')
	     },
	     Höhe: 40,
	     Breite: 40
	   }
   }

Notiz :
1. this.weatherIconDic ist ein Datenwörterbuch eines Wettersymbols, das ich lokal definiert habe. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::
2. this.weatherdata.weather ist der vom Backend zurückgesendete Wettertyp. (Beispiel: ["leichter Regen", "leichter Regen", "bedeckt", "leichter Regen", "wolkig", "leichter Regen", "leichter Regen", "leichter Regen"])

Endergebnis

Bildbeschreibung hier einfügen

Damit ist dieser Artikel über den Beispielcode zur Verwendung von Echarts zur Erstellung einer siebentägigen Wettervorhersage mit mehreren X-Achsen abgeschlossen. Weitere Informationen zur mehrachsigen Wettervorhersage von Echarts finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • echarts implementiert das Abrufen des Startwerts von datazoom (einschließlich x-Achse und y-Achse)
  • Detaillierte Erklärung des numerischen Beispielcodes des Echarts-Statistik-X-Achsenintervalls

<<:  So installieren Sie Tomcat8 im Docker

>>:  So verwenden Sie Cursor-Trigger in MySQL

Artikel empfehlen

So entfernen Sie MySQL aus Ubuntu und installieren es neu

Löschen Sie zuerst MySQL: sudo apt-get remove mys...

Detailliertes Tutorial zur Installation von ElasticSearch 6.x im Docker

Ziehen Sie zuerst das Image (oder erstellen Sie e...

Erstellen Sie Schritt für Schritt ein Dateiverwaltungssystem mit nginx+FastDFS

Inhaltsverzeichnis 1. Einführung in FastDFS 1. Ei...

Implementierung der Docker-Bereitstellung von Webprojekten

Im vorherigen Artikel wurde der Docker-Dienst ins...

Benutzerdefinierte Docker-Netzwerkcontainer-Verbindung

Inhaltsverzeichnis Vorwort -Link Benutzerdefinier...

So konfigurieren Sie den Nginx-Lastausgleich

Inhaltsverzeichnis Nginx-Lastausgleichskonfigurat...

Verwenden Sie PSSH zur Stapelverwaltung von Linux-Servern

pssh ist eine in Python implementierte Open-Sourc...

Detaillierte Erläuterung des Prozesses der Verwendung von GPU in Docker

Inhaltsverzeichnis tf-gpu herunterladen Erstellen...