Erste Schritte
Diese Anleitung fuehrt Sie durch die Installation von Graphic Walker und das Rendern Ihres ersten interaktiven Diagramms.
Voraussetzungen
- Node.js 16+
- React 17+ (React 18 empfohlen)
Installation
Installieren Sie das Paket mit Ihrem bevorzugten Paketmanager:
# npm
npm install @kanaries/graphic-walker
# yarn
yarn add @kanaries/graphic-walker
# pnpm
pnpm add @kanaries/graphic-walkerGrundlegende Verwendung
Importieren Sie die GraphicWalker-Komponente und uebergeben Sie Ihre Daten und Felddefinitionen:
import { GraphicWalker } from '@kanaries/graphic-walker';
const data = [
{ date: '2024-01-01', product: 'A', sales: 120, profit: 40 },
{ date: '2024-01-01', product: 'B', sales: 200, profit: 80 },
{ date: '2024-02-01', product: 'A', sales: 150, profit: 55 },
{ date: '2024-02-01', product: 'B', sales: 180, profit: 65 },
];
const fields = [
{ fid: 'date', name: 'Date', semanticType: 'temporal', analyticType: 'dimension' },
{ fid: 'product', name: 'Product', semanticType: 'nominal', analyticType: 'dimension' },
{ fid: 'sales', name: 'Sales', semanticType: 'quantitative', analyticType: 'measure' },
{ fid: 'profit', name: 'Profit', semanticType: 'quantitative', analyticType: 'measure' },
];
function App() {
return <GraphicWalker data={data} fields={fields} />;
}
export default App;Das war's -- dies rendert einen vollstaendigen interaktiven Visualisierungseditor, in dem Benutzer Felder per Drag-and-Drop ziehen koennen, um Diagramme zu erstellen.
Felder verstehen
Jedes Feld benoetigt zwei Typangaben:
Semantischer Typ
Teilt Graphic Walker mit, welche Art von Daten dieses Feld enthaelt:
| Semantischer Typ | Verwendung fuer | Beispiele |
|---|---|---|
quantitative | Kontinuierliche Zahlen | Umsatz, Temperatur, Anzahl |
nominal | Ungeordnete Kategorien | Produktname, Land, Farbe |
ordinal | Geordnete Kategorien | Bewertung (niedrig/mittel/hoch), Bildungsniveau |
temporal | Datum und Uhrzeit | Bestelldatum, Zeitstempel |
Analytischer Typ
Teilt Graphic Walker mit, wie das Feld in der Analyse verwendet werden soll:
| Analytischer Typ | Bedeutung | Verhalten |
|---|---|---|
dimension | Gruppierungsfeld | Wird verwendet, um Daten in Kategorien aufzuteilen |
measure | Aggregiertes Feld | Wird summiert, gemittelt, gezaehlt usw. |
Faustregel: Wenn Sie in SQL GROUP BY verwenden wuerden, ist es eine dimension. Wenn Sie SUM() oder AVG() verwenden wuerden, ist es ein measure.
Daten aus CSV laden
Sie koennen jede CSV-Parsing-Bibliothek verwenden. Hier ein Beispiel mit Papa Parse (opens in a new tab):
import { GraphicWalker } from '@kanaries/graphic-walker';
import Papa from 'papaparse';
import { useState, useEffect } from 'react';
function App() {
const [data, setData] = useState([]);
const [fields, setFields] = useState([]);
useEffect(() => {
Papa.parse('/data.csv', {
download: true,
header: true,
dynamicTyping: true,
complete(results) {
setData(results.data);
// Auto-generate field definitions from columns
const cols = Object.keys(results.data[0] || {});
setFields(
cols.map(col => ({
fid: col,
name: col,
semanticType: typeof results.data[0][col] === 'number' ? 'quantitative' : 'nominal',
analyticType: typeof results.data[0][col] === 'number' ? 'measure' : 'dimension',
}))
);
},
});
}, []);
if (!data.length) return <div>Loading...</div>;
return <GraphicWalker data={data} fields={fields} />;
}Vorkonfigurierte Diagramme hinzufuegen
Uebergeben Sie die chart-Prop, um bestimmte Visualisierungen anzuzeigen, wenn die Komponente geladen wird:
import { GraphicWalker } from '@kanaries/graphic-walker';
import type { IChart } from '@kanaries/graphic-walker';
const charts: IChart[] = [
{
visId: 'chart-1',
name: 'Sales by Product',
encodings: {
dimensions: [],
measures: [],
rows: [{ fid: 'sales', name: 'Sales', analyticType: 'measure', semanticType: 'quantitative' }],
columns: [{ fid: 'product', name: 'Product', analyticType: 'dimension', semanticType: 'nominal' }],
color: [],
opacity: [],
size: [],
shape: [],
theta: [],
radius: [],
longitude: [],
latitude: [],
geoId: [],
details: [],
filters: [],
text: [],
},
config: {
defaultAggregated: true,
geoms: ['bar'],
coordSystem: 'generic',
limit: -1,
},
layout: {
showTableSummary: false,
stack: 'stack',
showActions: false,
interactiveScale: false,
zeroScale: true,
size: { mode: 'auto', width: 800, height: 600 },
format: {},
resolve: {},
},
},
];
function App() {
return <GraphicWalker data={data} fields={fields} chart={charts} />;
}Dark Mode
Steuern Sie das Erscheinungsbild mit der appearance-Prop:
// Systemeinstellung folgen
<GraphicWalker data={data} fields={fields} appearance="media" />
// Immer hell
<GraphicWalker data={data} fields={fields} appearance="light" />
// Immer dunkel
<GraphicWalker data={data} fields={fields} appearance="dark" />Naechste Schritte
- GraphicWalker API-Referenz -- vollstaendige Props-Dokumentation
- Diagrammtypen-Anleitung -- alle unterstuetzten Diagrammtypen und visuellen Kodierungen
- Theming-Anleitung -- Farben, Themes und Erscheinungsbild anpassen
- Berechnungs-Anleitung -- clientseitige vs. serverseitige Datenverarbeitung
- Vanilla JS-Einbettung -- Verwendung ohne React