Pantrix UI

Scatter Chart

Bir saçılım grafiği: iki değere göre dizilmiş noktalar, biri grafik boyunca, öteki yukarı doğru; ikisinin birlikte nasıl gittiğini gösterir. Her noktanın büyüklüğü için üçüncü bir değerle bir balon grafiği olur.

import com.pantrixui.components.chart.scatter.PantrixScatterChart

Örnekler

İki değer, iki grup

Bir kafenin elli günü: günün sıcaklığı ve o gün satılan soğuk içecek. Hafta içi ve hafta sonu ayrı seriler; noktalar sıcaklıkla birlikte yukarı gidiyor, hafta sonları daha da yukarıda.

İmleci bir noktanın yakınına getir ya da noktaya dokun: tooltip günün iki değerini eksenlerin başlıklarıyla yazar. Lejanttaki bir kayda basmak o seriyi grafikten çıkarır.

PantrixScatterChart(
    series = listOf(
        ScatterSeries("weekdays", "Hafta içi", cafeDays(weekend = false), x = { it.heat }, y = { it.sold }),
        ScatterSeries("weekend", "Hafta sonu", cafeDays(weekend = true), x = { it.heat }, y = { it.sold })
    ),
    xAxis = ChartAxis(title = "Sıcaklık (°C)"),
    yAxis = ChartAxis(title = "Soğuk içecek"),
    description = "Sıcaklığa göre satılan soğuk içecek",
    tagKey = "plain"
)

internal fun cafeDays(weekend: Boolean): List<CafeDay> = List(50) { it }
    .filter { (it % 7 >= 5) == weekend }
    .map { day ->
        val heat = 12.0 + (day * 7 % 19) + (day % 4) * 0.5
        val wobble = (day * 37 % 29) - 14
        val busy = if (weekend) 45 else 0
        CafeDay(
            heat = heat,
            sold = (heat * 6.5 - 40 + wobble + busy).toInt().coerceAtLeast(4),
            hot = (190 - heat * 4.5 + wobble).toInt().coerceAtLeast(4),
            food = 85 + wobble + busy / 3
        )
    }

internal class CafeDay(
    val heat: Double,
    val sold: Int,
    val hot: Int,
    val food: Int
)

Balonlar

Bir mağazanın ürünleri: fiyatı, puanı ve, balonun büyüklüğü olarak, ay içinde satılan adet. Her nokta ürünün adıyla anılıyor (label); sizeAxis büyüklüğün ne olduğunu söylüyor.

Alan değere göre büyür: iki katı satan ürünün balonu iki katı alan kaplar, iki katı genişlik değil. Üst üste gelen balonların altındaki görünsün diye balonlar yarı saydam çizilir.

val strings = PantrixTheme.strings
PantrixScatterChart(
    series = listOf(
        ScatterSeries(
            key = "products",
            name = "Ürünler",
            data = shopProducts(),
            x = { it.price },
            y = { it.rating },
            size = { it.sold },
            label = { it.name }
        )
    ),
    xAxis = ChartAxis(title = "Fiyat", format = { "${strings.decimal(it)} ₺" }),
    yAxis = ChartAxis(title = "Puan", min = 3.0, max = 5.0),
    sizeAxis = ChartAxis(title = "Satış", format = { "${strings.decimal(it)} adet" }),
    description = "Ürünlerin fiyatı, puanı ve satışı",
    tagKey = "bubbles"
)

internal fun shopProducts(): List<ShopProduct> = listOf(
    ShopProduct("Kulaklık", 1450.0, 4.6, 820),
    ShopProduct("Klavye", 980.0, 4.3, 540),
    ShopProduct("Fare", 420.0, 4.4, 1260),
    ShopProduct("Monitör", 5200.0, 4.7, 310),
    ShopProduct("Web kamerası", 760.0, 3.9, 280),
    ShopProduct("Hoparlör", 1890.0, 4.1, 190),
    ShopProduct("Mikrofon", 2350.0, 4.5, 150),
    ShopProduct("Şarj aleti", 310.0, 4.0, 1640),
    ShopProduct("Kablo", 120.0, 3.6, 2100),
    ShopProduct("Tablet kalemi", 1150.0, 4.2, 95),
    ShopProduct("Laptop standı", 640.0, 4.8, 470),
    ShopProduct("Harici disk", 2780.0, 4.4, 360)
)

internal class ShopProduct(
    val name: String,
    val price: Double,
    val rating: Double,
    val sold: Int
)

Çizgiler ve bantlar

Noktaları okumaya yardım eden işaretler: ortalama sıcaklıkta bir çizgi, günün hedefinde bir çizgi ve en sıcak günlerin üstünde bir bant. Bir işaretin x'i burada bir yer adı değil, grafik boyunca uzanan eksenin bir değeridir.

PantrixScatterChart(
    series = listOf(
        ScatterSeries("days", "Günler", cafeDays(weekend = false), x = { it.heat }, y = { it.sold })
    ),
    xAxis = ChartAxis(title = "Sıcaklık (°C)"),
    yAxis = ChartAxis(title = "Soğuk içecek"),
    marks = listOf(
        ChartReferenceBand(x1 = 28, label = "Sıcak günler"),
        ChartReferenceLine(y = 150, label = "Hedef"),
        ChartReferenceLine(x = 21, label = "Ortalama")
    ),
    description = "Sıcaklığa göre satılan soğuk içecek, hedefle birlikte",
    tagKey = "marks"
)

internal fun cafeDays(weekend: Boolean): List<CafeDay> = List(50) { it }
    .filter { (it % 7 >= 5) == weekend }
    .map { day ->
        val heat = 12.0 + (day * 7 % 19) + (day % 4) * 0.5
        val wobble = (day * 37 % 29) - 14
        val busy = if (weekend) 45 else 0
        CafeDay(
            heat = heat,
            sold = (heat * 6.5 - 40 + wobble + busy).toInt().coerceAtLeast(4),
            hot = (190 - heat * 4.5 + wobble).toInt().coerceAtLeast(4),
            food = 85 + wobble + busy / 3
        )
    }

internal class CafeDay(
    val heat: Double,
    val sold: Int,
    val hot: Int,
    val food: Int
)

Biçimle ayırmak

Seriler yalnızca renkle değil biçimle de ayrılır: her seri kendi işaretiyle çizilir (marker). Renkleri ayırt edemeyen biri için de, siyah beyaz bir çıktıda da okunur.

val days = cafeDays(weekend = false)
PantrixScatterChart(
    series = listOf(
        ScatterSeries("cold", "Soğuk içecek", days, x = { it.heat }, y = { it.sold }),
        ScatterSeries("hot", "Sıcak içecek", days, x = { it.heat }, y = { it.hot }, marker = ChartMarker.Square),
        ScatterSeries("food", "Yiyecek", days, x = { it.heat }, y = { it.food }, marker = ChartMarker.Triangle)
    ),
    xAxis = ChartAxis(title = "Sıcaklık (°C)"),
    yAxis = ChartAxis(title = "Satış"),
    description = "Sıcaklığa göre üç ürün grubunun satışı",
    tagKey = "markers"
)

internal fun cafeDays(weekend: Boolean): List<CafeDay> = List(50) { it }
    .filter { (it % 7 >= 5) == weekend }
    .map { day ->
        val heat = 12.0 + (day * 7 % 19) + (day % 4) * 0.5
        val wobble = (day * 37 % 29) - 14
        val busy = if (weekend) 45 else 0
        CafeDay(
            heat = heat,
            sold = (heat * 6.5 - 40 + wobble + busy).toInt().coerceAtLeast(4),
            hot = (190 - heat * 4.5 + wobble).toInt().coerceAtLeast(4),
            food = 85 + wobble + busy / 3
        )
    }

internal class CafeDay(
    val heat: Double,
    val sold: Int,
    val hot: Int,
    val food: Int
)

Bir noktaya basmak

onSelect, basılan noktayı verir: x'i satırın serisindeki yeridir, label'ı noktanın adı. Bir balona bas ya da klavyeyle bir balona gidip Enter'a bas, kartın altındaki satır basılan ürünü yazar.

val report = LocalExampleEvents.current
val products = shopProducts()
PantrixScatterChart(
    series = listOf(
        ScatterSeries(
            key = "products",
            name = "Ürünler",
            data = products,
            x = { it.price },
            y = { it.rating },
            size = { it.sold },
            label = { it.name }
        )
    ),
    xAxis = ChartAxis(title = "Fiyat"),
    yAxis = ChartAxis(title = "Puan", min = 3.0, max = 5.0),
    sizeAxis = ChartAxis(title = "Satış"),
    onSelect = { point -> report("${point.label}: ${products[point.x as Int].sold} adet") },
    description = "Ürünlerin fiyatı, puanı ve satışı",
    tagKey = "pressed"
)

internal fun shopProducts(): List<ShopProduct> = listOf(
    ShopProduct("Kulaklık", 1450.0, 4.6, 820),
    ShopProduct("Klavye", 980.0, 4.3, 540),
    ShopProduct("Fare", 420.0, 4.4, 1260),
    ShopProduct("Monitör", 5200.0, 4.7, 310),
    ShopProduct("Web kamerası", 760.0, 3.9, 280),
    ShopProduct("Hoparlör", 1890.0, 4.1, 190),
    ShopProduct("Mikrofon", 2350.0, 4.5, 150),
    ShopProduct("Şarj aleti", 310.0, 4.0, 1640),
    ShopProduct("Kablo", 120.0, 3.6, 2100),
    ShopProduct("Tablet kalemi", 1150.0, 4.2, 95),
    ShopProduct("Laptop standı", 640.0, 4.8, 470),
    ShopProduct("Harici disk", 2780.0, 4.4, 360)
)

internal class ShopProduct(
    val name: String,
    val price: Double,
    val rating: Double,
    val sold: Int
)

Dışa aktarma

export = ChartExport(...) grafiğin üstüne bir dışa aktarma düğmesi koyar: bas ve türü seç (PNG, SVG ya da PDF). Grafik dosyayı üretir ve onExport'a verir; altta adı ve boyu, PNG ise resmi görünür, "Dosyayı kaydet" onu platformun yoluyla verir.

Dosyada eksenler, noktalar ve altında lejant durur; gösterilen nokta ve tooltip'i dosyada yoktur.

var file by remember { mutableStateOf<ChartExportFile?>(null) }
PantrixScatterChart(
    series = listOf(
        ScatterSeries("weekdays", "Hafta içi", cafeDays(weekend = false), x = { it.heat }, y = { it.sold }),
        ScatterSeries("weekend", "Hafta sonu", cafeDays(weekend = true), x = { it.heat }, y = { it.sold })
    ),
    xAxis = ChartAxis(title = "Sıcaklık (°C)"),
    yAxis = ChartAxis(title = "Soğuk içecek"),
    description = "Sıcaklığa göre satılan soğuk içecek",
    tagKey = "exported",
    export = ChartExport(fileName = "soguk-icecek") { file = it }
)
ExportedFile(file, tagKey = "exported")

internal fun cafeDays(weekend: Boolean): List<CafeDay> = List(50) { it }
    .filter { (it % 7 >= 5) == weekend }
    .map { day ->
        val heat = 12.0 + (day * 7 % 19) + (day % 4) * 0.5
        val wobble = (day * 37 % 29) - 14
        val busy = if (weekend) 45 else 0
        CafeDay(
            heat = heat,
            sold = (heat * 6.5 - 40 + wobble + busy).toInt().coerceAtLeast(4),
            hot = (190 - heat * 4.5 + wobble).toInt().coerceAtLeast(4),
            food = 85 + wobble + busy / 3
        )
    }

internal class CafeDay(
    val heat: Double,
    val sold: Int,
    val hot: Int,
    val food: Int
)

Yakınlaşma

zoom = ChartZoom() iki değere birden yakından bakmayı sağlar: Ctrl ya da Command ile tekerlek ve iki parmak aralarındaki noktaya, grafikteyken artı ve eksi gösterilen noktaya, düğmeler ortaya yakınlaşır. Fareyle sürükleme görüneni her yöne taşır; oklarla gidilen nokta görünüre gelir.

İki eksen görünen değerler için yeniden işaretlenir, çizim alanının kenarlarının dışı kesilir. Yataydaki kısım state.window, dikeydeki state.valueWindow'dur.

PantrixScatterChart(
    series = listOf(
        ScatterSeries("weekdays", "Hafta içi", cafeDays(weekend = false), x = { it.heat }, y = { it.sold }),
        ScatterSeries("weekend", "Hafta sonu", cafeDays(weekend = true), x = { it.heat }, y = { it.sold })
    ),
    xAxis = ChartAxis(title = "Sıcaklık (°C)"),
    yAxis = ChartAxis(title = "Soğuk içecek"),
    description = "Sıcaklığa göre satılan soğuk içecek",
    tagKey = "zoomed",
    zoom = ChartZoom()
)

internal fun cafeDays(weekend: Boolean): List<CafeDay> = List(50) { it }
    .filter { (it % 7 >= 5) == weekend }
    .map { day ->
        val heat = 12.0 + (day * 7 % 19) + (day % 4) * 0.5
        val wobble = (day * 37 % 29) - 14
        val busy = if (weekend) 45 else 0
        CafeDay(
            heat = heat,
            sold = (heat * 6.5 - 40 + wobble + busy).toInt().coerceAtLeast(4),
            hot = (190 - heat * 4.5 + wobble).toInt().coerceAtLeast(4),
            food = 85 + wobble + busy / 3
        )
    }

internal class CafeDay(
    val heat: Double,
    val sold: Int,
    val hot: Int,
    val food: Int
)

API

series

Bir saçılım grafiği: iki değere göre dizilmiş noktalar, biri grafik boyunca, öteki yukarı doğru; ikisinin birlikte nasıl gittiğini gösterir. Her noktanın büyüklüğü için üçüncü bir değerle bir balon grafiği olur.

ParametreTürVarsayılanNe olduğu
seriesList<ScatterSeries<*>>seriler, listelendikleri sırayla. Anahtarları onları birbirinden ayırır; aynı anahtarlı iki seri reddedilir.
modifierModifierModifiergrafiğin modifier'ı. Buradaki bir yükseklik grafiğindir, lejantınki de içinde.
xAxisChartAxis?ChartAxis()grafik boyunca uzanan değerlerin ekseni, grafiğin altında. Başlığı, o değerlerin tooltip'te ve ekran okuyucuda ne diye anıldığıdır. null ondan hiçbir şey çizmez.
yAxisChartAxis?ChartAxis()yukarı doğru değerlerin ekseni, grafiğin yanında. null ondan hiçbir şey çizmez.
sizeAxisChartAxis?nullbalonların büyüklüklerinin neyi ölçtüğü: title'ı bir büyüklüğün tooltip'te ve ekran okuyucuda ne diye anıldığı, format'ı nasıl yazıldığı, max'ı da, grafikteki en büyük büyüklük değilse, en büyük balonun karşıladığı büyüklüktür. Ondan hiçbir şey çizilmez ve başka hiçbir şeyi okunmaz.
marksList<ChartMark>emptyList()noktaların yanında çizim alanına çizilen çizgiler ve bantlar.
legendChartLegend?ChartLegend()serilerin adlarının durduğu yer. null hiç göstermez.
tooltipChartTooltip?ChartTooltip()gösterilen nokta için gösterilen: başlığı noktanın adıdır, altında da değerlerinin her biri için bir satır. crosshair'i noktanın içinden çizim alanı boyunca ve yukarı doğru geçen birer çizgidir, format'ı yukarı doğru değeri yazar; bir noktanın paylaşacağı bir yeri yoktur, shared okunmaz. Tooltip'in kendi content'ine noktanın değerleri verilir, önce grafik boyunca olanı. null hiç göstermez.
empty(@Composable () -> Unit)?nullgrafiğin çizecek değeri yokken gösterdiği şey: temanın bunun için yazdığı sözün ("Veri yok") yerine; o zaman ekran okuyucuya da o söz söylenmez. null sözü yazar.
stateChartStaterememberChartState()okuyucunun gizledikleri ve gösterdiği yer: verilmezse grafiğin kendisininki.
descriptionString?nullgrafiğin ne gösterdiği, birkaç sözcükle, ekran okuyucu için: grafik hakkında söylediği ilk şey. Verilmezse grafik serilerinin adlarıyla duyurulur.
onSelect((ChartPoint) -> Unit)?nullbasılan noktayla çağrılır: x'i serisinin satırları arasındaki sıfırdan sayılan yeri, label'ı adı, value'su yukarı doğru değeridir.
styleChartStyle?nullbu grafiğin kendi geometrisi: burada verilen alanlar, gerisi için temanınkiler.
colorsChartColors?nullbu grafiğin kendi renkleri, temanınkiler olmadıkları yerde.
tagKeyString?nullgrafiğin otomasyon anahtarı: grafik ScatterChart_<tagKey>, çizim alanı ScatterChart_<tagKey>.Plot, bir nokta ScatterChart_<tagKey>.Point_<series' key>_<number> (sayı, satırının birden sayılan yeridir), bir serinin lejant kaydı ScatterChart_<tagKey>.Legend_<series' key> ve tooltip ScatterChart_<tagKey>.Tooltip olur. Bir noktaya basış, serinin anahtarıyla bir ScatterChart select olayı olarak, bir lejant kaydına basış da anahtarla ve serinin gösterilip gösterilmediğiyle bir toggle olayı olarak bildirilir. Değerlerden hiçbir şey bildirilmez.
exportChartExport?nullgrafiği uygulamanın dışına PNG, SVG ya da PDF olarak çıkarmayı sağlayan şey: grafiğin üstündeki bir düğme onun o anki hâlinin dosyasını üretip verir (bkz. ChartExport). null, grafikte böyle bir düğme yoktur.
zoomChartZoom?nullgrafiğin değerlerinin bir kısmına, yatayda ve dikeyde birlikte yakından bakmayı sağlayan şey (bkz. ChartZoom): Ctrl ya da Command ile tekerlek ve iki parmak aralarındaki noktaya, grafikteyken artı ve eksi gösterilen noktaya, düğmeler ortaya yakınlaşır; fareyle sürükleme görüneni her yöne, düğmeler yatayda taşır, oklar gittikleri noktayı görünüre getirir. İki eksen görünen değerler için yeniden işaretlenir, çizim alanının kenarlarının dışı kesilir. Kısımlar state'te, window ve valueWindow olarak tutulur. Scatter grafiğin gezgin şeridi yoktur: navigator ve fitValues okunmaz. null, grafik bütün değerlerini gösterir.

ChartStyle

Bir grafiğin geometrisi: hiçbir şey söylemediğinde ne kadar yüksek olduğu, çizgilerinin ne kadar kalın, işaretlerinin ne kadar büyük olduğu ve parçalarının arasındaki boşluk; ve dolgularının renklerinin yanında desen alıp almadığı.

ParametreTürVarsayılanNe olduğu
heightDpDp.UnspecifiedGrafiğin modifier'ı ona bir yükseklik vermediğinde çizim alanının, eksenleriyle birlikte, ne kadar yüksek olduğu. Çizim alanının üstündeki ya da altındaki bir lejant kendi yüksekliğini ekler.
lineWidthDpDp.UnspecifiedBir serinin çizgisinin kalınlığı.
markerSizeDpDp.UnspecifiedBir noktadaki işaretin genişliği ve yüksekliği.
selectedMarkerSizeDpDp.UnspecifiedAynısı, gösterilen noktadaki işaret için.
gridWidthDpDp.UnspecifiedKılavuz çizgilerinin, eksenler boyunca çizilen çizgilerin ve gösterilen yeri işaretleyen çizginin kalınlığı. Sıfır hiçbirini çizmez.
labelGapDpDp.UnspecifiedÇizim alanıyla yanına ve altına yazılanın arası, ve onunla bir eksenin başlığının arası.
tickSpacingDpDp.UnspecifiedDeğerlerin ekseni boyunca işaretlenen iki değerin arasındaki en az boşluk: eksen söylemediğinde kaç tanesinin işaretleneceğine karar veren şey.
legendGapDpDp.UnspecifiedLejantla yanında durduğu grafiğin arası.
legendItemGapDpDp.UnspecifiedLejantın bir kaydıyla sonrakinin arası.
swatchSizeDpDp.UnspecifiedBir serinin lejanttaki ve tooltip'teki örneğinin ne kadar geniş olduğu: çizgisinin kısa bir parçası ya da dolgusunun bir yaması.
swatchGapDpDp.UnspecifiedO örnekle ardındaki adın arası.
tooltipShapeShapeSpecShapeSpec.UnspecifiedTooltip'in köşeleri: markanın şekil ölçeğinin bir basamağı ya da sabit bir şekil.
tooltipHorizontalPaddingDpDp.UnspecifiedTooltip'in yanlarıyla içindekinin arası.
tooltipVerticalPaddingDpDp.UnspecifiedÜstü ve altıyla içindekinin arası, ve başlığıyla satırlarının arası.
tooltipGapDpDp.UnspecifiedGösterilen yerle yanındaki tooltip'in arası.
tooltipElevationDpDp.UnspecifiedTooltip'in gölgesi.
barGapDpDp.UnspecifiedBir yerde yan yana duran iki çubuğun arası. Bunun için fazla ince olan çubuklar daha yakın durur.
barMaxWidthDpDp.UnspecifiedBir çubuğun en fazla ne kadar geniş olduğu, yerinin ne kadar yeri olursa olsun: üç yerli bir grafik üç kalas değildir.
barRadiusDpDp.UnspecifiedBir çubuğun ucunun, sıfırdan uzak ucunun, köşelerinin ne kadar yuvarlak olduğu.
sliceGapDpDp.UnspecifiedBir pastanın yan yana duran iki dilimi arasında; pastanın ortasından kenarına kadar aynı genişlikte.
selectedSliceOffsetDpDp.UnspecifiedBir pastanın gösterilen diliminin, pastanın kenarından ne kadar dışarı taştığı. Pasta çevresinde bu kadar yer bırakır: dilimin duracağı yer olsun.
gaugeWidthDpDp.UnspecifiedBir göstergenin yayının kalınlığı. Bir yay, yarıçapının yarısından kalın olmaz.
meterHeightDpDp.UnspecifiedBir ölçüm grubunun çubuğunun yüksekliği.
trackerHeightDpDp.UnspecifiedBir durum izleyicinin bloklarının yüksekliği.
bubbleMinSizeDpDp.UnspecifiedBir saçılım grafiğinin en küçük balonunun genişliği: büyüklüğü hiç olmayan ya da bir alan olarak görülemeyecek kadar az olan nokta da bir noktadır.
bubbleMaxSizeDpDp.UnspecifiedEn büyük balonunun genişliği: büyüklüğü grafiğin en büyüğü olanın.
navigatorHeightDpDp.UnspecifiedZoom'unda gezgin şeridi olan bir grafikte, çizim alanının altındaki şeridin yüksekliği: grafiğin görünen kısmı onun üstünde işaretlenir ve kaydırılır. Yerleri yanından aşağı dizilen grafikte şerit çizim alanının yanında durur ve bu onun genişliğidir.
barBandShareFloatFloat.NaNBir yerin çubuklarının bandından aldığı pay, sıfırdan çok ve en fazla bir: kalanı bir yerin çubuklarıyla sonrakininkiler arasındaki boşluktur. Çubuklar yine de barMaxWidth'ten geniş olmaz.
markLineWidthDpDp.UnspecifiedBir işaretin çizgisinin kalınlığı: bir hedefin, bir sınırın, bir günün. Sıfır çizgi çizmez; işaretin yazısı yine yazılır.
markBandAlphaFloatFloat.NaNBir işaretin bandının renginin ne kadarıyla çizildiği, sıfırdan bire: bant serilerin arkasında durur ve bir tondur.
patternsBoolean?nullBir grafiğin serilerinin, dilimlerinin ve karolarının dolgularının renklerinin yanında desenlerle, çizgilerinin de sırayla kesik çizilip çizilmediği (ChartPattern): renkleri ayırt edemeyen bir okuyucu için onları ayıran şey. Verilmezse sistemin ayarına uyulur: sistem şeyleri renksiz ayırt etmeye ayarlıysa açık (iOS'ta "Differentiate Without Color", Android'de renk düzeltme), değilse kapalı.
nodeWidthDpDp.UnspecifiedBir sankey düğümünün ne kadar geniş olduğu.
nodeGapDpDp.UnspecifiedBir sankey kolonunun iki düğümü arası.

ChartColors

Temanın renklerini almayan bir grafik için, onun neyle boyandığı: verilen renk kullanılır, verilmeyen temanınki kalır.

ParametreTürVarsayılanNe olduğu
seriesList<Color>emptyList()Serilerin çizildiği renkler, dağıtıldıkları sırayla, kendi rengini söylemeyen seriler için. Boşsa temanın grafik renkleridir.
gridColorColor.UnspecifiedBir eksenin işaretlerinde grafik boyunca çizilen çizgiler. Temanın divider'ı.
axisColorColor.UnspecifiedBir eksen boyunca çizilen çizgi. Temanın border'ı.
labelColorColor.UnspecifiedEksenlerin yanına yazılanlar: değerler, yerler ve eksenlerin başlıkları, bir de lejanttaki adlar. Temanın textSecondary'si.
crosshairColorColor.UnspecifiedGösterilen yeri işaretleyen çizgi. Temanın borderHover'ı: içinden geçtiği kılavuz çizgilerinden güçlü, arkasında durduğu serilerden sessiz.
tooltipContainerColorColor.UnspecifiedTooltip'in dolgusu. Temanın surface'i.
tooltipBorderColorColor.UnspecifiedTooltip'in kenarı. Temanın border'ı.
tooltipTextColorColor.UnspecifiedTooltip'in başlığı ve değerleri. Temanın textPrimary'si.
tooltipLabelColorColor.UnspecifiedTooltip'teki seri adları. Temanın textSecondary'si.
risingColorColor.UnspecifiedYukarı giden bir değerin çizildiği renk: bir şelalenin ekleyen adımı. Temanın success'i.
fallingColorColor.UnspecifiedAşağı giden bir değerin çizildiği renk: bir şelalenin götüren adımı. Temanın danger'ı.

Erişilebilirlik