Beispielcode für horizontales Balkendiagramm von Echarts Bar

Beispielcode für horizontales Balkendiagramm von Echarts Bar

Fortsetzung der ausführlichen Erläuterung des vorherigen Artikels #Echart-Balkenhistogrammstil. Sie können zuerst den vorherigen Artikel lesen. Wenn Sie ihn nicht lesen, sind die Auswirkungen nicht besonders groß.

Horizontales Balkendiagramm

Daten und Stile dynamisch aktualisieren

Realisieren Sie ein dynamisches Umschalten zwischen Monatsstatistiken und Tagesstatistiken. Bei der monatlichen Berechnung der Statistiken werden die Daten für jeden Monat angezeigt und die X-Achse zeigt 12 Beschriftungen. Bei der täglichen Berechnung der Statistiken zeigt die X-Achse nicht alle Beschriftungen vollständig an, sondern in Abständen und die Spaltenbreite ändert sich ebenfalls. Die hauptsächlich verwendete Methode ist die setOption-Methode.

Offizielle Dokumentation [setOption]: echarts.apache.org/zh/api.html…

<Skript>
  importiere * als R von „ramda“;

  const Quelle1 = [
    ["Januar", 1330, 666, 560],
    ["Februar", 820, 760, 660],
    ......
    ["November", 901, 880, 360],
    ["Dezember", 934, 600, 700],
  ];
  const Quelle2 = [
    ["1 Tag", 1330, 666, 560],
    ["2.", 820, 760, 660],
    ......
    ["29.", 934, 600, 700],
    ["30.", 1330, 666, 560],
  ];

  // Die konkrete Konfiguration ist wie zuvor gezeigt, die Details werden weggelassen, nur das grundlegende Beispiel wird gezeigt const initOption = {
    ...
    Datensatz: { Quelle: Quelle1 },
  };

  Standard exportieren {
    Daten() {
      zurückkehren {
        Diagramme: null,
        isDaily: false,
      };
    },
    montiert() {
      dies.charts = dies.$echarts.init(
        document.getElementById("Balkendiagramme"),
        null,
        {
          Renderer: "svg",
        }
      );
      diese.charts.setOption(R.clone(initOption));
    },
    Methoden: {
      Quelle behandeln() {
        dies.istDaily = !dies.istDaily;
        diese.charts.setOption(
          R.mergeDeepRight(initOption, {
            // Datenquellen-Dataset dynamisch aktualisieren: {
              Quelle: this.isDaily ? Quelle2 : Quelle1,
            },
            x-Achse:
              // Beschriftungsintervall dynamisch aktualisieren axisLabel: {
                Intervall: this.isDaily ? 4 : "auto",
              },
            },
            Serie: R.map(
              // Spaltenbreite dynamisch aktualisieren (o) => ((o.barWidth = this.isDaily ? 12 : 24), o),
              initOption.series
            ),
          }),
          WAHR
        );
        dies.charts.resize();
      },
    },
  };
</Skript>

Lösen Sie das Problem der Breiten- und Höhenanpassung von E-Charts

Beim Erstellen von Diagrammen in Webprojekten sind die Breite und Höhe des Diagramms nicht festgelegt und müssen an die Breite und Höhe des Browsers angepasst werden. Die verwendete Methode ist die Größenanpassung. Wenn mehrere Diagramme vorhanden sind, muss deren Größe gleichzeitig geändert werden.

<Skript>
  Standard exportieren {
    montiert() {
      window.addEventListener("Größe ändern", this.handleResize, false);
    },
    zerstört() {
      window.removeEventListener("Größe ändern", this.handleResize);
    },
    Methoden: {
      handleResize() {
        const _this = dies;
        const timer = setTimeout(() => {
          _this.lineCharts.resize();
          _this.barCharts.resize();
        }, 500);
        // Lösche den Timer this.$once("hook:beforeDestroy", () => {
          setzeTimeout(Timer);
        });
      },
    },
  };
</Skript>

Vertikales Balkendiagramm

Implementierung eines vertikalen Balkendiagramms

Das Wesentliche ist das gleiche wie in horizontaler Richtung, ersetzen Sie einfach die Werte der x- und y-Achse; die x-Achse ist der Wert und die y-Achse ist die Kategorie

let-Option = {
  x-Achse:
    Typ: "Wert",
  },
  yAchse: {
    Typ: "Kategorie",
  },
};

Farbverlaufsfarbe für den Hintergrund des Koordinatenindikators

Tatsächlich ist das Prinzip dasselbe wie bei der horizontalen Methode, dh die x- und y-Werte des Farbverlaufsverarbeitungsbereichs werden geändert.

lass horizontaleFarbe = {
  Typ: "linear",
  x: 1, // Ändere y: 0,
  x2: 0,
  y2: 0, // Farbe ändernStopps: [
    { Offset: 0, Farbe: "rgba(234,244,255,1)" },
    { Offset: 1, Farbe: "rgba(234,244,255,0.3)" },
  ],
  global: falsch,
};

Spalten mit unterschiedlichen Farben

Die Einstellung der Farbe in der Serieneigenschaft der Spalte kann eine Funktion sein und in der Funktion verarbeitet werden. Der Kerncode ist colorList[params.dataIndex]

lass Farbliste = [
  "#1890ff",
  „#52c41a“,
  "#faad14",
  "#f5222d",
  "#1DA57A",
  "#d9d9d9",
];
lass Serie = [
  {
    Typ: "Bar",
    Balkenbreite: 16,
    Artikelstil: {
      // Angepasste Anzeige (um) verschiedene Farbspalten zu erreichen color: (params) => {
        gibt Farbliste [Params.Datenindex] zurück;
      },
    },
    Abmessungen: ["Typ", "Verkaufsmenge"],
  },
];

Werte über dem Balkendiagramm anzeigen

Die Beschriftung in der Serieneigenschaftseinstellung der Spalte kann eine Funktion sein und in der Funktion verarbeitet werden. Sie können Position, Schriftfarbe und -größe usw. festlegen. Der Kerncode ist params.value[params.encode.x[0]].

lass Serie = [
  {
    // ......
    Typ: "Bar",
    Etikett: {
      // Anzeigewert der Spaltenkopfzeile des Diagramms show: true,
      Position: "rechts",
      Farbe: "#333",
      Schriftgröße: "12px",
      Formatierer: (Parameter) => {
        Rückgabewert [params.encode.x[0]];
      },
    },
  },
];

Anpassung des Tooltip-Eingabeaufforderungsfelds

Dasselbe wie horizontal, achten Sie nur auf die Werte params[0].axisValue, item.seriesName, item.value[item.encode.x[0]]

let tooltip = R.merge(tooltip, {
  Formatierer: Funktion (Parameter) {
    lass html = `<div style="height:auto;width:163px;">
          <div style="Schriftgröße: 14px; Schriftstärke: fett; Farbe: #333; Rand unten: 16px; Zeilenhöhe: 1;">
            ${params[0].axisValue}
          </div>
          ${params
            .Karte(
              (
                Artikel
              ) => `<div style="font-size:12px;color:#808080;margin-bottom:8px;display:flex;align-items:center;line-height:1;">
                <span style="Anzeige: Inline-Block;Rand rechts: 8px;Rahmenradius: 6px;Breite: 6px;Höhe: 6px;Hintergrundfarbe: ${
                  Artikelfarbe
                };"></span>
                ${item.seriesName}
                <span style="flex:1;text-align:right;">${
                  Element.Wert[Element.encode.x[0]]
                }</span>
              </div>`
            )
            .verbinden("")}
        </div>`;
    HTML zurückgeben;
  },
});

Allgemeine Implementierung

charts.setOption({
  Titel:
    Text: "Verkaufsmengenverteilung",
  },
  Datensatz:
    Quelle: [
      ["Apfel", 200],
      ["Pfirsich", 180],
      ["Trauben", 340],
      ["Banane", 250],
      ["Mango", 166],
      ["Durian", 185],
    ],
  },
  xAchse: R.merge(yAchse, {
    Typ: "Wert",
  }),
  yAchse: R.mergeDeepRight(xAchse, {
    Typ: "Kategorie",
    Achsenzeiger:
      Schattenstil: {
        Farbe: horizontaleFarbe,
      },
    },
  }),
  Serie,
  Tooltip,
});

Zusammenfassen

Dies ist das Ende dieses Artikels über das horizontale Balkendiagramm von Echarts Bar. Weitere relevante Inhalte zum horizontalen Balkendiagramm von Echarts Bar finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Farbverlaufsbalkendiagramm, implementiert durch das jQuery-Plugin Echarts
  • Beispiel für einen mehrspaltigen Balkendiagrammeffekt, implementiert durch das jQuery-Plugin echarts [mit Demo-Quellcode-Download]
  • Lösen Sie das Problem, dass echarts zwei Werte in einem Balkendiagramm anzeigt, ähnlich einem Fortschrittsbalken
  • echarts Balkendiagramm Hintergrund überlappende Kombination statt paralleler Implementierungscode
  • Grundlegende Einführung in Echarts: Allgemeine Konfiguration von Balkendiagrammen und Liniendiagrammen

<<:  Lösung für den Fehler „MySQL-Server ist verschwunden“

>>:  MySQL Master-Slave-Daten sind inkonsistent, Eingabeaufforderung: Slave_SQL_Running: Keine Lösung

Artikel empfehlen

So legen Sie den Produktionsumgebungsmodus process.env.NODE_ENV fest

Bevor ich anfange, möchte ich betonen, dass proce...

Zen Coding Einfaches und schnelles HTML-Schreiben

Zen-Codierung Es ist ein Texteditor-Plugin. In ei...

Das WeChat-Applet realisiert ein Verknüpfungsmenü

Um das Kursdesign zu realisieren, habe ich kürzli...

Detaillierte Erklärung der Verwendung des Fuser-Befehls in Linux

beschreiben: fuser kann anzeigen, welches Program...

JavaScript zum Erzielen eines Bodeneffekts

In diesem Artikel wird der spezifische JavaScript...

MySQL-Optimierungsstrategie (empfohlen)

Zusammenfassend: 1. Berücksichtigen Sie die Leist...

Installations- und Konfigurationsmethode des Vue-Route-Routing-Managements

einführen Vue Router ist der offizielle Routing-M...

So ziehen Sie das Docker-Image herunter, um die Version anzuzeigen

Um die Version und das Tag des Bildes anzuzeigen,...

Detaillierte Erklärung zur Verwendung von JavaScript-Funktionen

Inhaltsverzeichnis 1. Deklarieren Sie eine Funkti...