Datenvisualisierung mit ApexCharts

Veröffentlicht: 2022-03-10
Kurze Zusammenfassung ↬ In diesem Artikel lernen Sie ApexCharts und die verschiedenen Arten und Varianten von Diagrammen kennen, die es bietet. Dabei werden wir verschiedene Arten von Diagrammen erstellen und lernen, wie wir das Erscheinungsbild unserer Diagramme anpassen können. Am Ende des Artikels können Sie mit ApexCharts verschiedene Arten und Varianten von Chats in Ihre Anwendungen integrieren.

ApexCharts ist eine moderne Diagrammbibliothek, die Entwicklern hilft, schöne und interaktive Visualisierungen für Webseiten mit einer einfachen API zu erstellen, während React-ApexCharts die React-Integration von ApexChart ist, die es uns ermöglicht, ApexCharts in unseren Anwendungen zu verwenden. Dieser Artikel ist für diejenigen von Vorteil, die ihren Kunden komplexe grafische Daten zeigen müssen.

Einstieg

Installieren Sie zunächst die React-ApexCharts-Komponente in Ihrer React-Anwendung und importieren react-apexcharts .

 npm i react-apexcharts apexcharts import ReactApexCharts from 'react-apexcharts'

Die Kernkomponenten eines ApexChart ist sein Konfigurationsobjekt. Im options definieren wir die series und Optionseigenschaften für ein Diagramm. series sind die Daten, die wir im Diagramm visualisieren möchten. In der Serie definieren wir die Daten und den Namen der Daten. Die Werte im Datenarray werden auf der Y-Achse des Diagramms aufgetragen. Der Name der Daten wird angezeigt, wenn Sie mit der Maus über das Diagramm fahren. Sie können eine einzelne oder mehrere Datenreihen haben. In options definieren wir, wie ein Diagramm aussehen soll, die Funktionen und Werkzeuge, die wir einem Diagramm hinzufügen möchten, und die Beschriftungen der x- und y-Achsen eines Diagramms. Die Daten, die wir in den series und Optionseigenschaften des Konfigurationsobjekts definieren options series options ReactApexChart Komponente.

Hier ist ein Beispiel dafür, wie die Komponenten eines ApexChart zusammenarbeiten. (Wir werden sie später in diesem Artikel genauer betrachten.)

 const config = { series: [1, 2, 3, 4, 5], options: { chart: { toolbar: { show: true }, } } } return ( <ReactApexChart options={config.options} series={config.series} type="polarArea" /> )

Wenn Sie die Dokumentation durchgehen, werden Sie feststellen, dass die Breite, Höhe und Art des Diagramms im Optionsobjekt definiert sind, wie im folgenden Code-Snippet.

 const config = { series: [44, 55, 13, 43, 22], chart: { width: 380, type: 'pie' } },

Dies liegt daran, dass die Dokumente mit Blick auf die Vanilla-JavaScript-Anwendung geschrieben wurden. Wir arbeiten mit React, also definieren wir Breite, Höhe und Typ, indem wir sie als Requisiten an die ReactApexCharts Komponente übergeben. Wie das funktioniert, sehen wir uns im nächsten Abschnitt an.

Mehr nach dem Sprung! Lesen Sie unten weiter ↓

Liniendiagramme

Dies ist eine Art von Diagramm, das verwendet wird, um Informationen anzuzeigen, die sich im Laufe der Zeit ändern. Wir zeichnen eine Linie, indem wir mehrere Punkte verwenden, die durch gerade Linien verbunden sind. Wir verwenden Liniendiagramme, um zu visualisieren, wie sich ein Datenelement im Laufe der Zeit ändert. In einer Finanzanwendung könnten Sie es beispielsweise verwenden, um einem Benutzer zu zeigen, wie seine Einkäufe im Laufe der Zeit gestiegen sind.

Ein Beispiel für ein mit ApexCharts erstelltes Liniendiagramm
Ein Beispiel für ein mit ApexCharts erstelltes Liniendiagramm. (Große Vorschau)

Dieses Diagramm besteht aus den folgenden Komponenten:

  • Titel
    Diese befindet sich über dem Diagramm und informiert den Benutzer darüber, welche Daten das Diagramm darstellt.
  • Symbolleiste
    Die Symbolleiste befindet sich in der rechten Ecke des obigen Bildes. Es steuert die Zoomstufe des Diagramms. Sie können das Zeichen auch über die Symbolleiste exportieren.
  • Achsenbeschriftungen
    Auf der linken und rechten Achse haben wir die Beschriftungen für jede Achse.
  • Datenaufkleber
    Die Datenbeschriftungen sind an jedem Plotpunkt auf der Linie sichtbar. Sie erleichtern die Anzeige der Daten im Diagramm.

Wir haben gesehen, wie ein Liniendiagramm aussieht und welche verschiedenen Komponenten es hat. Lassen Sie uns nun die Schritte zum Erstellen eines solchen durchgehen.

Wir beginnen mit series . Hier definieren wir die Daten der Serie und ihren Namen. Dann übergeben wir die options und series an die Requisiten der ReactApexChart -Komponente. Wir definieren auch den Typ des Diagramms in der type Prop und setzen ihn auf line .

 const config = { series: [{ name: "Performance", data: [10, 21, 35, 41, 59, 62, 79, 81, 98] }], options: {} } return ( <ReactApexChart options={config.options} series={config.series} type="line" /> )

Der kritische Teil eines ApexChart sind seine series . Die in der Eigenschaft options definierten Konfigurationen sind optional. Ohne Definitionen in den options werden die Daten trotzdem angezeigt. Es ist jedoch möglicherweise nicht das am besten lesbare Diagramm. Wenn Sie sich entscheiden, keine benutzerdefinierten Definitionen in den options festzulegen, muss es immer noch als leeres Objekt vorhanden sein.

Die Standardform eines Liniendiagramms ohne dem Optionsobjekt hinzugefügte Konfigurationen
Die Standardansicht eines Liniendiagramms. (Große Vorschau)

Lassen Sie uns die options des Diagramms konfigurieren, indem wir dem config , das wir im Konfigurationsobjekt haben, einige Werte hinzufügen.

In der chart Eigenschaft des options -Objekts definieren wir die Konfigurationen des Charts. Hier fügen wir die Symbolleiste aus dem Diagramm hinzu, indem wir ihre Eigenschaft show auf true setzen. Die Symbolleiste bietet uns Werkzeuge zum Steuern der Zoomstufe des Diagramms und zum Exportieren des Diagramms in verschiedene Dateiformate. Die Symbolleiste ist standardmäßig sichtbar.

 options: { chart: { toolbar: { show: true }, }, }

Wir können unser Diagramm leichter lesbar machen, indem wir Datenbeschriftungen für das Diagramm aktivieren. Dazu fügen wir die Eigenschaft dataLabels dem options hinzu und setzen ihre Eigenschaft enabled auf true . Dies erleichtert die Interpretation der Daten im Diagramm.

 dataLabels: { enabled: true },
Ein Liniendiagramm mit hinzugefügten Datenbeschriftungen
Ein Liniendiagramm mit hinzugefügten Datenbeschriftungen. (Große Vorschau)

Standardmäßig ist der Strich eines Liniendiagramms gerade. Wir können es jedoch gekrümmt machen. Wir fügen die stroke -Eigenschaft den options hinzu und setzen ihre curve auf smooth .

 stroke: { curve: "smooth" }
Ein Kurvendiagramm
Ein Kurvendiagramm. (Große Vorschau)

Ein wichtiger Teil jedes Diagramms ist sein Titel. Wir fügen options eine title hinzu, um dem Diagramm einen Titel zu geben.

 title: { text: 'A Line Chart', align: 'left' },
Ein Liniendiagramm mit einem Titel in der oberen linken Ecke
Ein Liniendiagramm mit einem Titel in der oberen linken Ecke. (Große Vorschau)

Wir können den x- und y-Achsen des Diagramms Beschriftungen hinzufügen. Dazu fügen wir den options xaxis und yaxis Eigenschaften hinzu und definieren dort den title für jede Achse.

 xaxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'], title: { text: 'Month' } }, yaxis: { title: { text: 'Performance' } }
Ein Liniendiagramm mit Beschriftungen zu den x- und y-Achsen
Ein Liniendiagramm mit hinzugefügten Achsenbeschriftungen. (Große Vorschau)

Am Ende sollte Ihr Code so aussehen. Mit diesen Schritten haben wir nicht nur ein Liniendiagramm erstellt, sondern auch eine Aufschlüsselung gesehen, wie die von uns definierten options ein Diagramm verbessern können.

 import ReactApexCharts from 'react-ApexCharts' const config = { series: [{ name: "Performance", data: [10, 21, 35, 41, 59, 62, 79, 81, 98] }], options: { chart: { toolbar: { show: true }, }, dataLabels: { enabled: true }, stroke: { curve: "smooth" } title: { text: 'A Line Chart', align: 'left' }, xaxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'], title: { text: 'Month' } }, yaxis: { title: { text: 'Performance' } } } } return ( <ReactApexChart options={config.options} series={config.series} type="line" /> )

Flächendiagramme

Ein Flächendiagramm ähnelt einem Liniendiagramm in Bezug darauf, wie Datenwerte auf dem Diagramm dargestellt und mit Liniensegmenten verbunden werden. Der einzige Unterschied besteht darin, dass in einem Flächendiagramm die von den Datenpunkten dargestellte Fläche mit Schattierungen oder Farben gefüllt ist. Wie Liniendiagramme zeigen Flächendiagramme, wie sich ein Datenelement im Laufe der Zeit ändert. Im Gegensatz zu Liniendiagrammen können sie jedoch auch das Volumen visuell darstellen. Wir können es verwenden, um zu zeigen, wie sich Gruppen in einer Reihe von Daten überschneiden. Beispielsweise ein Diagramm, das Ihnen die Anzahl der Benutzer zeigt, die über verschiedene Browser auf Ihre Anwendung zugreifen.

Ein Beispiel für ein mit ApexCharts erstelltes Flächendiagramm
Ein Beispiel für ein mit ApexCharts erstelltes Flächendiagramm. (Große Vorschau)

In der Abbildung oben haben wir ein Beispiel für ein Flächendiagramm. Wie das Liniendiagramm hat es einen Titel, Datenbeschriftungen und Achsenbeschriftungen. Der schattierte Teil des gezeichneten Flächendiagramms zeigt das Volumen in den Daten. Es zeigt auch, wie sich die Daten in series1 mit denen von series2 . Ein weiterer Anwendungsfall von Flächendiagrammen besteht darin, die Beziehung zwischen zwei oder mehr Datenelementen und deren Überschneidungen darzustellen.

Sehen wir uns an, wie Sie ein gestapeltes Flächendiagramm erstellen und Datenbeschriftungen hinzufügen.

Um ein Flächendiagramm zu erstellen, stellen wir den Diagrammtyp auf „ area “ und den Strich auf „ smooth “ ein. Dies ist der Standardstrich für ein Flächendiagramm.

 const config = { options: { stroke: { curve: 'smooth' } } } return ( <ReactApexChart options={config.options} series={config.series} type="area" /> )
Ein ungestapeltes Flächendiagramm
Ein ungestapeltes Flächendiagramm. (Große Vorschau)

Um es zu einem gestapelten Diagramm zu machen, setzen wir in der Eigenschaft chart des options stacked auf true .

 const config = { options: { stroke: { curve: 'smooth' }, chart: { stacked: true } } return ( <ReactApexChart options={config.options} series={config.series} type="area" /> )
Ein gestapeltes Flächendiagramm
Ein gestapeltes Flächendiagramm. (Große Vorschau)

Balkendiagramme

Wir verwenden Balkendiagramme, um Daten mit rechteckigen Balken in Höhen oder Längen darzustellen, die proportional zu den Werten sind, die sie darstellen. Es wird am besten verwendet, um verschiedene Kategorien zu vergleichen, z. B. welche Art von Auto die Leute haben oder wie viele Kunden ein Geschäft an verschiedenen Tagen hat.

Ein Balkendiagramm mit einigen Daten
Ein Balkendiagramm mit einigen Daten. (Große Vorschau)

Die horizontalen Balken sind die Hauptbestandteile eines Balkendiagramms. Sie ermöglichen es uns, Werte verschiedener Kategorien problemlos zu vergleichen.

Beim Erstellen eines Balkendiagramms beginnen wir damit, die Reihendaten für das Diagramm zu definieren und den type der ReactApexChart -Komponente auf bar festzulegen.

 const config = { series: [{ data: [400, 430, 448, 470, 540, 580, 690, 1100, 1200, 1380] }], options: {} } return ( <ReactApexChart options={config.options} series={config.series} type="bar" /> )
Die Standardform eines Balkendiagramms
Die Standardansicht eines Balkendiagramms. (Große Vorschau)

Lassen Sie uns den Balken mehr Leben und Unterscheidungskraft verleihen. Standardmäßig sind Balkendiagramme vertikal. Um sie horizontal zu machen, definieren wir in der Eigenschaft plotOptions , wie die Balken aussehen sollen. Wir setzen die horizontal Stütze auf true , um die Balken horizontal zu machen. Wir setzen die Position der dataLabels auf bottom . Wir können es auch auf top oder center setzen. Die distributed Requisite verleiht unseren Riegeln eine besondere Note. Ohne sie werden den Balken keine unterschiedlichen Farben zugewiesen und die Legende wird nicht am unteren Rand des Diagramms angezeigt. Wir definieren auch die Form der Balken mit den Eigenschaften startingShape und endingShape .

 options{ plotOptions: { bar: { distributed: true, horizontal: true, startingShape: "flat", endingShape: "rounded", dataLabels: { position: 'bottom', }, } }, }
Balken, bei denen die Eigenschaft „distributed“ auf „false“ gesetzt ist
Balken, bei denen die Eigenschaft „ distributed “ auf „false“ gesetzt ist. (Große Vorschau)
Balken, bei denen die Eigenschaft „distributed“ auf „true“ gesetzt ist
Balken, bei denen die Eigenschaft „ distributed “ auf „true“ gesetzt ist. (Große Vorschau)

Als Nächstes fügen wir dem Diagramm die Kategorien, Beschriftungen und Titel hinzu.

 xaxis: { categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan', 'United States', 'China', 'India'] }, title: { text: 'A bar Chart', align: 'center', },
Die endgültige Form des Balkendiagramms mit den hinzugefügten Beschriftungen
Das Endergebnis der horizontalen Balken. (Große Vorschau)

Säulendiagramme

Ein Säulendiagramm ist eine Datenvisualisierung, bei der jede Kategorie durch ein Rechteck dargestellt wird, wobei die Höhe des Rechtecks ​​proportional zu den dargestellten Werten ist. Wie Balkendiagramme werden Säulendiagramme verwendet, um verschiedene Datenkategorien zu vergleichen. Säulendiagramme werden auch als vertikale Balkendiagramme bezeichnet. Um das obige Balkendiagramm in ein Säulendiagramm umzuwandeln, müssen wir lediglich horizontal in den plotOptions auf false setzen.

Ein Säulendiagramm, das Gewinn, Umsatz und Cashflow eines Unternehmens vergleicht
Ein Säulendiagramm, das Gewinn, Umsatz und Cashflow eines Unternehmens vergleicht. (Große Vorschau)

Die vertikalen Spalten erleichtern die Interpretation der von uns visualisierten Daten. Außerdem erhöhen die oben in jeder Spalte hinzugefügten Datenbeschriftungen die Lesbarkeit des Diagramms.

Sehen wir uns an, wie wir ein einfaches Säulendiagramm erstellen und sehen, wie wir es in ein gestapeltes Säulendiagramm umwandeln können.

Wie immer beginnen wir mit den series und setzen den type auf „Balken“.

 const config = { series: [{ name: 'Net Profit', data: [44, 55, 57, 56, 61, 58, 63, 60, 66] }, { name: 'Revenue', data: [76, 85, 101, 98, 87, 105, 91, 114, 94] }, { name: 'Free Cash Flow', data: [35, 41, 36, 26, 45, 48, 52, 53, 41] }], options: {} } return ( <ReactApexChart options={config.options} series={config.series} type="bar" /> )
Die Standardform eines Säulendiagramms
Die Standardansicht eines Säulendiagramms. (Große Vorschau)

Das bekommen wir aus der Box. Wir können es jedoch anpassen. Breite und Form der Balken definieren wir in der Eigenschaft plotOptions . Wir setzen auch die Position des dataLabel auf top .

 options: { plotOptions: { bar: { columnWidth: '75%', endingShape: 'flat', dataLabels: { position: "top" }, }, }, }
Ein Säulendiagramm mit hinzugefügten Datenbeschriftungen
Ein Säulendiagramm mit hinzugefügten Datenbeschriftungen. (Große Vorschau)

Als nächstes definieren wir den Stil und die Schriftgröße der Datenbeschriftungen und ihren Abstand von den Diagrammen. Schließlich fügen wir die Beschriftungen für die x- und y-Achse hinzu.

 options: { dataLabels: { offsetY: -25, style: { fontSize: '12px', colors: ["#304758"] } }, xaxis: { categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'], }, yaxis: { title: { text: '$ (thousands)' } }, }
Die endgültige Form des Säulendiagramms
Die endgültige Form der Spalte. (Große Vorschau)

Um dies in ein gestapeltes Diagramm umzuwandeln, müssen wir dem chart lediglich eine stacked Eigenschaft hinzufügen und sie auf true setzen. Da wir zu einem gestapelten Diagramm gewechselt haben, ändern wir außerdem die endingShape der Balken in flat , um die Kurven zu entfernen.

 options: { chart: { stacked: true, }, plotOptions: { bar: { endingShape: 'flat', } } }
Ein gestapeltes Säulendiagramm
Ein gestapeltes Säulendiagramm. (Große Vorschau)

Torten- und Donut-Diagramme

Ein Tortendiagramm ist ein kreisförmiges Diagramm, das einzelne Kategorien als Segmente – oder Prozentsätze – des Ganzen darstellt. Das Ringdiagramm ist eine Variante des Tortendiagramms mit einem Loch in der Mitte und zeigt Kategorien als Bögen und nicht als Segmente an. Beide machen Teil-zu-Ganzes-Beziehungen auf einen Blick leicht zu erfassen. Kreisdiagramme und Ringdiagramme werden häufig verwendet, um Wahl- und Volkszählungsergebnisse, Einnahmen nach Produkt oder Abteilung, Recyclingdaten, Umfrageantworten, Budgetaufschlüsselungen, Bildungsstatistiken, Ausgabenpläne oder Bevölkerungssegmentierung zu visualisieren.

Beispiel für ein Tortendiagramm
Beispiel für ein Tortendiagramm. (Große Vorschau)

In Torten- und Ringdiagrammen werden series in Prozent berechnet. Das bedeutet, dass die Summe der Werte in der series 100 sein sollte.

Beginnen wir mit dem Erstellen eines Tortendiagramms. Wir stellen den Diagrammtyp auf pie type . Wir definieren auch die series für das Diagramm und definieren die Beschriftungen in den options . Die Reihenfolge der Beschriftungen entspricht den Werten im series .

 const config = { series: [20, 10, 35, 12, 23], options: { labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'], } } return ( <ReactApexChart options={config.options} series={config.series} type="pie" /> )
Ein Kreisdiagramm
Ein Kreisdiagramm. (Große Vorschau)

Wir können die Reaktionsfähigkeit unserer Diagramme steuern. Dazu fügen wir den options des Diagramms eine responsive -Eigenschaft hinzu . Hier setzen wir den max-width Breakpoint auf 480px . Dann setzen wir die width des Diagramms auf 450px und die position der Legende auf bottom . Bei Bildschirmgrößen von 480px und darunter wird die Legende jetzt am unteren Rand des Diagramms angezeigt.

 options: { labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'], responsive: [{ breakpoint: 480, options: { chart: { width: 450 }, legend: { position: 'bottom' } } }] },

Um das Tortendiagramm in ein Donut-Diagramm umzuwandeln, müssen Sie lediglich den type der Komponente in donut ändern.

 <ReactApexChart options={config.options} series={config.series} type="donut" />
Ein Donut-Diagramm
Ein Donut-Diagramm. (Große Vorschau)

Mischkarten

Mit gemischten Diagrammen können Sie zwei oder mehr Diagrammtypen in einem einzigen Diagramm kombinieren. Sie können gemischte Diagramme verwenden, wenn die Zahlen in Ihren Daten von Datenreihe zu Datenreihe stark variieren oder wenn Sie gemischte Datentypen haben (z. B. Preis und Volumen). Gemischte Diagramme erleichtern die gleichzeitige Visualisierung verschiedener Datentypen im selben Format.

Ein gemischtes Diagramm
Ein Mischdiagramm. (Große Vorschau)

Lassen Sie uns eine Kombination aus einem Linien-, Flächen- und Säulendiagramm erstellen.

Wir definieren die series und den type für jedes der Diagramme. Bei gemischten Diagrammen wird der Typ jedes Diagramms in seiner series definiert und nicht in der type -Prop der ReactApexChart -Komponente.

 const config = { series: [{ name: 'TEAM A', type: 'column', data: [23, 11, 22, 27, 13, 22, 37, 21, 44, 22, 30] }, { name: 'TEAM B', type: 'area', data: [44, 55, 41, 67, 22, 43, 21, 41, 56, 27, 43] }, { name: 'TEAM C', type: 'line', data: [30, 25, 36, 30, 45, 35, 64, 52, 59, 36, 39] }], options: {} }
Die Standardform eines gemischten Diagramms
Die Standardform eines gemischten Diagramms. (Große Vorschau)

Als nächstes stellen wir den Strichtyp auf smooth und definieren seine Breite. Wir übergeben ein Array von Werten, um die Breite jedes Diagramms zu definieren. Die Werte im Array entsprechen der Reihenfolge der in series definierten Diagramme. Wir definieren auch die Deckkraft der Füllung jedes Diagramms. Dazu übergeben wir auch ein Array. Auf diese Weise können wir die Deckkraft jedes Diagramms separat steuern.

Zuletzt fügen wir die Beschriftungen für die x- und y-Achse hinzu.

 options: { stroke: { width: [2,2,4], curve: 'smooth' }, fill: { opacity: [0.7, 0.3, 1], }, labels: ['Jan', 'Feb', 'March', 'April', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov'], yaxis: { title: { text: 'Points', }, }, }
Ein gemischtes Diagramm mit angepasster Deckkraft
Ein gemischtes Diagramm mit angepasster Deckkraft. (Große Vorschau)

Anpassen unserer Diagramme

Abgesehen von der Änderung der Farbe unserer Diagramme können wir ihnen ein gewisses Maß an Anpassung hinzufügen.

Wir können unseren Diagrammen Raster hinzufügen und sie gestalten. In der grid -Eigenschaft definieren wir die Farben für die Zeilen und Spalten des Diagramms. Das Hinzufügen von Rastern zu Ihrem Diagramm kann das Verständnis erleichtern.

 options: { grid: { row: { colors: ['#f3f3', 'transparent'], opacity: 0.5 }, column: { colors: ['#dddddd', 'transparent'], opacity: 0.5 }, }, }
Ein Liniendiagramm mit hinzugefügten Gittern
Ein Liniendiagramm mit hinzugefügten Gittern. (Große Vorschau)

Wir können den Strich der Diagramme anpassen und ihre Farben definieren. Machen wir das mit dem Säulendiagramm. Jede Farbe im colors entspricht den Daten im series .

 options: { stroke: { show: true, width: 4, colors: ['red', "blue", "green" ] }, }
Ein Säulendiagramm mit hinzugefügtem Strich
Ein Säulendiagramm mit hinzugefügtem Strich. (Große Vorschau)

Fazit

Wir sind einige der Diagrammtypen durchgegangen, die ApexCharts bietet, und haben gelernt, wie man von einem Diagrammtyp zum anderen wechselt. Wir haben auch einige Möglichkeiten gesehen, das Erscheinungsbild unserer Diagramme anzupassen. Es gibt noch viele Dinge zu entdecken, also tauchen Sie gleich in die ApexCharts-Dokumentation ein.