BarChart
Her veri öğesini kategorik değerleri karşılaştırmak için uygun bir çubuk olarak çizin. Yatay veya dikey olarak düzenlenebilir, sayısal aralıklar, kategori etiketleri ve sayısal etiketler ayarlanabilir ve pozitif ve negatif değerleri destekleyebilir.
Örnek
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 }}
/>
);
}
Kullanım
- Her data bir çubuk, dizi sırası kategori sırasıdır; x gerekmez. horizontal durumunda da değer aralığı rangeY adını taşır. Otomatik aralık sıfırı kapsar, negatifler tabanın tersine uzanır; background çubukları doldurur.
- rangeX/rangeY etiket değil sayısal aralıktır. Etiketi gizlemek ekseni gizlemez; stroke="clear" kullanın. Yerel düzen çakışmayan etiketleri seçer, hepsini garanti etmez.
- contentAnimation yazı, resim ve yapısal veriyi geçirir. interpolate için Polyline nokta sayısı/closed, Path komutları veya grafik yapısı eşleşmelidir. Yapı değişirse anında güncellenir.
Özellikler
dataReadonlyArray<BarChartDataPoint>Dizi sırasındaki kategoriler. Her öğede sayısal değer ve isteğe bağlı etiket bulunur.
[{value: 10, label: "A"}, {value: 20, label: "B"}, {value: 30, label: "C"}]axis?"horizontal" | "vertical"Çubuk yönü: vertical soldan sağa; horizontal yukarıdan aşağıya sıralanır.
"vertical"rangeY?ChartRangeGörünür değer aralığı [min, max]. Atlanırsa verilere uyar ve sıfırı içerir.
[0, 100]showLabels?booleanKategori etiketlerini göster. Eksik etiketler boş kalır; yerel düzen çakışmayı önler.
trueshowValueLabels?booleanOtomatik oluşturulan sayısal eksen etiketlerini göster.
truebarThickness?number | "auto"Puan cinsinden çubuk kalınlığı veya kategori aralığına uyan auto.
"auto"xAxis?ChartAxisStyleGrafiğin altındaki yatay eksen çizgisi. Varsayılan: ön plan rengi, 1pt genişlik; stroke: clear ile gizlenir.
{stroke: HDR($env.foreground), lineWidth: 1}yAxis?ChartAxisStyleGrafiğin solundaki dikey eksen çizgisi. Varsayılan: ön plan rengi, 1pt genişlik; stroke: clear ile gizlenir.
{stroke: HDR($env.foreground), lineWidth: 1}background?PaintHer çubuğun dolgusu. Varsayılan, temanın ön plan rengidir.
HDR($env.dark ? "white" : "black")cornerRadius?numberHer çubuğun köşe yarıçapı, boyutuyla sınırlıdır.
0stroke?PaintÇizgi rengi veya gradyanı; clear gizler.
"clear"lineWidth?numberÇizgi kalınlığı, punto; 0 çizmez.
2strokePosition?"inside" | "center" | "outside"Her çubuğa göre çizgi konumu. Varsayılan inside.
"inside"dash?number[]Çizgi ve boşluk uzunlukları sırayla, punto; boş dizi düz çizgidir.
[]dashPhase?numberKesik çizgi desen kayması, punto.
0contentAnimation?ContentAnimationİsteğe bağlı içerik geçişi. interpolate aynı kategori sayısı ve yönü gerektirir; aksi halde hemen günceller.
{type: "interpolate", duration: 0.25}Ortak özellikler
width?number | "auto" | "fill"Punto cinsinden genişlik, otomatik boyut veya üst alanı doldurma.
"fill"height?number | "auto" | "fill"Punto cinsinden yükseklik, otomatik boyut veya üst alanı doldurma.
"fill"x?numberGörsel kaydırma, punto: x sağa, y aşağı. Yerleşimde ayrılan alan değişmez.
0y?numberGörsel kaydırma, punto: x sağa, y aşağı. Yerleşimde ayrılan alan değişmez.
0transform?ViewTransformYerleşimi değiştirmeyen bütünsel dönüşüm. Kaydırma punto, dönüş/eğim derece, ölçek 1 değişmez, dayanak 0–1.
{rotation: 0}opacity?numberTüm View opaklığı: 0 saydam, 1 opak.
1clipped?booleanView sınırlarını aşan çizimi kırpar.
falseclip?"rectangle" | "ellipse"Kırpma şekli rectangle veya ellipse; Material için false kapatır.
"rectangle"mask?View | nullAlfa maskesi View öğesi. Düzeni etkilemeden ortalanır; null maskeyi devre dışı bırakır.
<Circle width="fill" height="fill" background="white"/>zIndex?numberKardeşler arasında çizim sırası; büyük değer öndedir.
0blur?numberBulanıklık yarıçapı, punto; 0 kapatır.
4innerShadow?DrawingEffectEfekt rengi, opaklığı, bulanıklık yarıçapı ve x/y kayması; uzaklıklar punto.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectEfekt rengi, opaklığı, bulanıklık yarıçapı ve x/y kayması; uzaklıklar punto.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorDış gölge rengi.
HDR("black")shadowOpacity?numberGölge opaklığı 0–1; 0 gizler.
0shadowRadius?numberDış gölge bulanıklık yarıçapı, punto.
4shadowX?numberGölge kayması, punto: x sağa, y aşağı.
0shadowY?numberGölge kayması, punto: x sağa, y aşağı.
2animations?BarChartAnimation[]Özellik değişimini canlandırır. duration/delay saniye; from/to uçlar; repeat/autoreverse tekrar, wrap dönem.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberKardeş öğeler arasında kararlı kimlik.
Pratik örnek
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' }}
/>
);
}
Animasyon
widthheightxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYbarThicknessstrokelineWidthdashPhasetransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYrangeY.0rangeY.1xAxis.lineWidthxAxis.dashPhaseyAxis.lineWidthyAxis.dashPhasexAxis.strokeyAxis.strokeAtlandığında
Tablo uygulamada doğrulanmış atlama davranışıdır; örnekler varsayılan değildir. Sabit sonuç için açık değer kullanın; bağlama bağlı boyut ve tema renkleri sabit sayı değildir.
| Özellikler | Atlandığında |
|---|---|
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 } |