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
- Balonlar.
sizeverilen serinin noktaları balondur. Bir balonun alanı, büyüklüğünün grafikteki en büyük büyüklüğe oranı kadardır: iki katı değer iki katı alan. En küçük ve en büyük balonun ölçüsü grafik stilindedir (bubbleMinSize,bubbleMaxSize). Balonlu grafik, eksenlerinin uçlarında en büyük balona yer bırakır. - Noktanın adı.
label, bir noktanın ne diye anıldığını söyler: bir ülke, bir ürün. Tooltip'in başlığı ve ekran okuyucunun söylediği odur. - Eksenler.
xAxisveyAxis, eksenli grafiğinChartAxis'idir: başlık, biçim, uçlar, kılavuz çizgileri. Başlıklar tooltip'te değerlerin adı olur.sizeAxisbüyüklüğün adını (title), yazımını (format) ve en büyük balonun karşıladığı değeri (max) söyler; ondan bir şey çizilmez. - İşaretler.
marksile bir değerde çizgi ya da iki değer arasında bant çizilir; burada bir işaretinx'i grafik boyunca uzanan eksenin bir değeridir. - Gösterilen nokta. İmlecin altındaki ya da yakınındaki, parmakla dokunulan nokta gösterilir: çevresinde bir halka, içinden geçen iki çizgi ve değerlerini yazan tooltip. Üst üste duran noktalardan en küçüğü gösterilir.
- Durum ve basmak. Gösterilen nokta
ChartState'te,x'i satırın serisindeki yeri veseries'i serinin anahtarı olan bir seçim olarak durur.onSelectbasılan noktayı aynı yerle verir. - Yön. Sağdan sola okunan dilde boyuna değerler sağdan başlar, yukarı değerler sağa yazılır.
- Dışa aktarma.
exportgrafiğin üstüne bir düğme koyar: grafik ekrandaki hâliyle, gösterilen yer ve tooltip olmadan, PNG, SVG ya da PDF dosyası olarak üretilir ve uygulamaya verilir. - Yakınlaşma.
zoomile iki değere birden yakından bakılır: tekerlek (Ctrl ya da Command ile), iki parmak, artı ve eksi tuşları ve düğmeler yakınlaşır; sürükleme görüneni her yöne taşır. - Otomasyon.
ScatterChart_<tagKey>; çizim alanı.Plot, noktalar.Point_<seri>_<sıra>, lejant kayıtları.Legend_<seri>, tooltip.Tooltip.
Ö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.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
series | List<ScatterSeries<*>> | seriler, listelendikleri sırayla. Anahtarları onları birbirinden ayırır; aynı anahtarlı iki seri reddedilir. | |
modifier | Modifier | Modifier | grafiğin modifier'ı. Buradaki bir yükseklik grafiğindir, lejantınki de içinde. |
xAxis | ChartAxis? | 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. |
yAxis | ChartAxis? | ChartAxis() | yukarı doğru değerlerin ekseni, grafiğin yanında. null ondan hiçbir şey çizmez. |
sizeAxis | ChartAxis? | null | balonları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. |
marks | List<ChartMark> | emptyList() | noktaların yanında çizim alanına çizilen çizgiler ve bantlar. |
legend | ChartLegend? | ChartLegend() | serilerin adlarının durduğu yer. null hiç göstermez. |
tooltip | ChartTooltip? | 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)? | null | grafiğ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. |
state | ChartState | rememberChartState() | okuyucunun gizledikleri ve gösterdiği yer: verilmezse grafiğin kendisininki. |
description | String? | null | grafiğ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)? | null | bası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. |
style | ChartStyle? | null | bu grafiğin kendi geometrisi: burada verilen alanlar, gerisi için temanınkiler. |
colors | ChartColors? | null | bu grafiğin kendi renkleri, temanınkiler olmadıkları yerde. |
tagKey | String? | null | grafiğ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. |
export | ChartExport? | null | grafiğ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. |
zoom | ChartZoom? | null | grafiğ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ığı.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
height | Dp | Dp.Unspecified | Grafiğ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. |
lineWidth | Dp | Dp.Unspecified | Bir serinin çizgisinin kalınlığı. |
markerSize | Dp | Dp.Unspecified | Bir noktadaki işaretin genişliği ve yüksekliği. |
selectedMarkerSize | Dp | Dp.Unspecified | Aynısı, gösterilen noktadaki işaret için. |
gridWidth | Dp | Dp.Unspecified | Kılavuz çizgilerinin, eksenler boyunca çizilen çizgilerin ve gösterilen yeri işaretleyen çizginin kalınlığı. Sıfır hiçbirini çizmez. |
labelGap | Dp | Dp.Unspecified | Çizim alanıyla yanına ve altına yazılanın arası, ve onunla bir eksenin başlığının arası. |
tickSpacing | Dp | Dp.Unspecified | Değ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. |
legendGap | Dp | Dp.Unspecified | Lejantla yanında durduğu grafiğin arası. |
legendItemGap | Dp | Dp.Unspecified | Lejantın bir kaydıyla sonrakinin arası. |
swatchSize | Dp | Dp.Unspecified | Bir serinin lejanttaki ve tooltip'teki örneğinin ne kadar geniş olduğu: çizgisinin kısa bir parçası ya da dolgusunun bir yaması. |
swatchGap | Dp | Dp.Unspecified | O örnekle ardındaki adın arası. |
tooltipShape | ShapeSpec | ShapeSpec.Unspecified | Tooltip'in köşeleri: markanın şekil ölçeğinin bir basamağı ya da sabit bir şekil. |
tooltipHorizontalPadding | Dp | Dp.Unspecified | Tooltip'in yanlarıyla içindekinin arası. |
tooltipVerticalPadding | Dp | Dp.Unspecified | Üstü ve altıyla içindekinin arası, ve başlığıyla satırlarının arası. |
tooltipGap | Dp | Dp.Unspecified | Gösterilen yerle yanındaki tooltip'in arası. |
tooltipElevation | Dp | Dp.Unspecified | Tooltip'in gölgesi. |
barGap | Dp | Dp.Unspecified | Bir yerde yan yana duran iki çubuğun arası. Bunun için fazla ince olan çubuklar daha yakın durur. |
barMaxWidth | Dp | Dp.Unspecified | Bir çubuğun en fazla ne kadar geniş olduğu, yerinin ne kadar yeri olursa olsun: üç yerli bir grafik üç kalas değildir. |
barRadius | Dp | Dp.Unspecified | Bir çubuğun ucunun, sıfırdan uzak ucunun, köşelerinin ne kadar yuvarlak olduğu. |
sliceGap | Dp | Dp.Unspecified | Bir pastanın yan yana duran iki dilimi arasında; pastanın ortasından kenarına kadar aynı genişlikte. |
selectedSliceOffset | Dp | Dp.Unspecified | Bir 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. |
gaugeWidth | Dp | Dp.Unspecified | Bir göstergenin yayının kalınlığı. Bir yay, yarıçapının yarısından kalın olmaz. |
meterHeight | Dp | Dp.Unspecified | Bir ölçüm grubunun çubuğunun yüksekliği. |
trackerHeight | Dp | Dp.Unspecified | Bir durum izleyicinin bloklarının yüksekliği. |
bubbleMinSize | Dp | Dp.Unspecified | Bir 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. |
bubbleMaxSize | Dp | Dp.Unspecified | En büyük balonunun genişliği: büyüklüğü grafiğin en büyüğü olanın. |
navigatorHeight | Dp | Dp.Unspecified | Zoom'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. |
barBandShare | Float | Float.NaN | Bir 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. |
markLineWidth | Dp | Dp.Unspecified | Bir 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. |
markBandAlpha | Float | Float.NaN | Bir işaretin bandının renginin ne kadarıyla çizildiği, sıfırdan bire: bant serilerin arkasında durur ve bir tondur. |
patterns | Boolean? | null | Bir 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ı. |
nodeWidth | Dp | Dp.Unspecified | Bir sankey düğümünün ne kadar geniş olduğu. |
nodeGap | Dp | Dp.Unspecified | Bir 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.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
series | List<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. |
grid | Color | Color.Unspecified | Bir eksenin işaretlerinde grafik boyunca çizilen çizgiler. Temanın divider'ı. |
axis | Color | Color.Unspecified | Bir eksen boyunca çizilen çizgi. Temanın border'ı. |
label | Color | Color.Unspecified | Eksenlerin yanına yazılanlar: değerler, yerler ve eksenlerin başlıkları, bir de lejanttaki adlar. Temanın textSecondary'si. |
crosshair | Color | Color.Unspecified | Gösterilen yeri işaretleyen çizgi. Temanın borderHover'ı: içinden geçtiği kılavuz çizgilerinden güçlü, arkasında durduğu serilerden sessiz. |
tooltipContainer | Color | Color.Unspecified | Tooltip'in dolgusu. Temanın surface'i. |
tooltipBorder | Color | Color.Unspecified | Tooltip'in kenarı. Temanın border'ı. |
tooltipText | Color | Color.Unspecified | Tooltip'in başlığı ve değerleri. Temanın textPrimary'si. |
tooltipLabel | Color | Color.Unspecified | Tooltip'teki seri adları. Temanın textSecondary'si. |
rising | Color | Color.Unspecified | Yukarı giden bir değerin çizildiği renk: bir şelalenin ekleyen adımı. Temanın success'i. |
falling | Color | Color.Unspecified | Aşağı giden bir değerin çizildiği renk: bir şelalenin götüren adımı. Temanın danger'ı. |
Erişilebilirlik
- Klavye. Grafik, Tab için tek duraktır: sağ ve sol oklar serinin noktaları arasında grafik boyunca gider, yukarı ve aşağı oklar önceki ve sonraki seriye geçer, Home ve End serinin ilk ve son noktasına gider, Escape bırakır, Enter ve boşluk gösterilen noktaya basar.
- Ekran okuyucu. Grafik
description'ını, ardından seri seri her noktayı adı ve değerleriyle söyler. İki yüzden çok noktası olan grafik yalnızca açıklamasıyla anlatılır.