BarChart
Stellen Sie jedes Datenelement als Balken dar, der zum Vergleich kategorialer Werte geeignet ist. Es kann horizontal oder vertikal angeordnet werden, numerische Bereiche, Kategoriebeschriftungen und numerische Beschriftungen festlegen und unterstützt positive und negative Werte.
Beispiel
function main() {
return (
<BarChart
data={[
{ value: 30, label: 'A' },
{ value: 70, label: 'B' },
]}
axis="vertical"
rangeY={[0, 100]}
showLabels={true}
showValueLabels={true}
background={$env.accent}
cornerRadius={6}
yAxis={{ stroke: $env.foreground, lineWidth: 1 }}
/>
);
}
Verwendung
- Ein data-Eintrag ist ein Balken; Arrayreihenfolge bestimmt Kategorien, x ist unnötig. Bei horizontal heißt der Wertebereich weiter rangeY. Automatik enthält null, negative Werte reichen über die Basislinie, background füllt Balken.
- rangeX/rangeY begrenzen Zahlen, nicht Beschriftungen. Versteckte Labels entfernen keine Achsen; dafür stroke="clear" setzen. Native Auswahl verhindert Überlappungen, weshalb nicht jedes aktivierte Label erscheinen muss.
- contentAnimation betrifft Text, Bilder und strukturierte Daten. interpolate benötigt passende Polyline-Punktzahl/closed, Path-Befehlsfolge oder Diagrammstruktur. Strukturänderungen werden sofort übernommen.
Eigenschaften
dataReadonlyArray<BarChartDataPoint>Kategorien in Array-Reihenfolge. Jeder Eintrag enthält einen Zahlenwert und eine optionale Beschriftung.
[{value: 10, label: "A"}, {value: 20, label: "B"}, {value: 30, label: "C"}]axis?"horizontal" | "vertical"Balkenrichtung: vertical von links nach rechts; horizontal von oben nach unten.
"vertical"rangeY?ChartRangeSichtbarer Wertebereich [min, max]. Ohne Angabe automatisch an Daten angepasst, einschließlich null.
[0, 100]showLabels?booleanKategoriebeschriftungen anzeigen. Fehlende bleiben leer; das native Layout verhindert Überlappungen.
trueshowValueLabels?booleanAutomatisch erzeugte numerische Achsenbeschriftungen anzeigen.
truebarThickness?number | "auto"Balkendicke in Punkten oder auto für automatische Kategorieabstände.
"auto"xAxis?ChartAxisStyleHorizontale Achsenlinie am unteren Diagrammrand. Standard: Vordergrundfarbe, 1pt breit; mit stroke: clear ausblenden.
{stroke: HDR($env.foreground), lineWidth: 1}yAxis?ChartAxisStyleVertikale Achsenlinie am linken Diagrammrand. Standard: Vordergrundfarbe, 1pt breit; mit stroke: clear ausblenden.
{stroke: HDR($env.foreground), lineWidth: 1}background?PaintFüllung jedes Balkens. Standard ist die Vordergrundfarbe des Designs.
HDR($env.dark ? "white" : "black")cornerRadius?numberEckenradius jedes Balkens, auf seine Größe begrenzt.
0stroke?PaintLinienfarbe oder Verlauf; clear blendet die Linie aus.
"clear"lineWidth?numberLinienstärke in Punkten; 0 zeichnet keine Linie.
2strokePosition?"inside" | "center" | "outside"Konturposition relativ zu jedem Balken. Standard ist inside.
"inside"dash?number[]Abwechselnde Strich- und Lückenlängen in Punkten; leeres Array bedeutet durchgezogen.
[]dashPhase?numberVersatz des Strichmusters in Punkten.
0contentAnimation?ContentAnimationOptionaler Inhaltsübergang. interpolate erfordert dieselbe Kategorienanzahl und Richtung; sonst sofortige Aktualisierung.
{type: "interpolate", duration: 0.25}Allgemeine Eigenschaften
width?number | "auto" | "fill"Breite in Punkten, automatische Größe oder Ausfüllen des übergeordneten Bereichs.
"fill"height?number | "auto" | "fill"Höhe in Punkten, automatische Größe oder Ausfüllen des übergeordneten Bereichs.
"fill"x?numberVisueller Versatz in Punkten: x nach rechts, y nach unten; der Layoutplatz bleibt gleich.
0y?numberVisueller Versatz in Punkten: x nach rechts, y nach unten; der Layoutplatz bleibt gleich.
0transform?ViewTransformGesamten View ohne Layoutänderung transformieren. Verschiebung in Punkten, Drehung/Neigung in Grad, Skalierung 1 unverändert, Anker 0–1.
{rotation: 0}opacity?numberDeckkraft des gesamten Views: 0 transparent, 1 undurchsichtig.
1clipped?booleanZeichnung außerhalb der View-Grenzen abschneiden.
falseclip?"rectangle" | "ellipse"Schnittform rectangle oder ellipse; Material erlaubt auch false zum Abschalten.
"rectangle"mask?View | nullView als Alphamaske. Zentriert ohne Einfluss auf das Layout; null deaktiviert die Maske.
<Circle width="fill" height="fill" background="white"/>zIndex?numberZeichenreihenfolge unter Geschwistern; größere Werte liegen vorne.
0blur?numberUnschärferadius in Punkten; 0 deaktiviert die Unschärfe.
4innerShadow?DrawingEffectEffektfarbe, Deckkraft, Unschärferadius und x/y-Versatz; Entfernungen in Punkten.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectEffektfarbe, Deckkraft, Unschärferadius und x/y-Versatz; Entfernungen in Punkten.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorFarbe des äußeren Schattens.
HDR("black")shadowOpacity?numberSchattendeckkraft 0–1; 0 blendet ihn aus.
0shadowRadius?numberUnschärferadius des äußeren Schattens in Punkten.
4shadowX?numberSchattenversatz in Punkten: x rechts, y unten.
0shadowY?numberSchattenversatz in Punkten: x rechts, y unten.
2animations?BarChartAnimation[]Attributänderung animieren. duration/delay in Sekunden; from/to sind Endwerte; repeat/autoreverse steuern Wiederholung, wrap die Periode.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberStabile Kennung unter Geschwisterelementen.
Praxisbeispiel
function main() {
return (
<BarChart
width={260}
height={160}
axis="horizontal"
rangeY={[-50, 100]}
data={[
{ value: 80, label: 'A' },
{ value: -25, label: 'B' },
{ value: 45, label: 'C' },
]}
showLabels={true}
showValueLabels={true}
background={$env.accent}
cornerRadius={4}
xAxis={{ stroke: $env.foreground, dash: [4, 3] }}
yAxis={{ stroke: 'clear' }}
/>
);
}
Animation
widthheightxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYbarThicknessstrokelineWidthdashPhasetransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYrangeY.0rangeY.1xAxis.lineWidthxAxis.dashPhaseyAxis.lineWidthyAxis.dashPhasexAxis.strokeyAxis.strokeBeim Weglassen
Die Tabelle zeigt implementierte Vorgaben beim Weglassen. Eigenschaftsbeispiele sind keine Standardwerte. Für feste Ergebnisse explizite Werte setzen; kontextabhängige Maße und Themenfarben sind keine Konstanten.
| Eigenschaften | Beim Weglassen |
|---|---|
data | [] |
axis | "vertical" |
showLabels | true |
showValueLabels | true |
cornerRadius | 0 |
strokePosition | "inside" |
background | HDR($env.dark ? 'white' : 'black') |
xAxis | { stroke: HDR($env.foreground), lineWidth: 1 } |
yAxis | { stroke: HDR($env.foreground), lineWidth: 1 } |