Common Recipes
This chapter provides copy-ready recipes for common charts (Series + Axes + common pitfalls) to help you create and troubleshoot quickly.
0. Before you start: minimum checklist
When you see “nothing shows” or “it looks weird”, check in this order:
- Does
coordinateSystemmatch the SeriesType (Cartesian2D vs Polar2D) - Does
seriescontain at least 1 serie, and does that serie haveseriesData.Count > 0 - Do axis types match what your data means:
- Category axis:
labelsis not empty, and datax/yare indices (0/1/2…) - Value axis: data
x/yare continuous numeric values
- Category axis:
- Do you have any NaN/Infinity
- Did you lock Value axis range (
autoRangeMin/autoRangeMaxor fixed min/max) so data is outside the range
1. Line chart (Line): Category X + numeric Y
Target
- X: category labels (A/B/C/D)
- Y: numeric values
- line points aligned to categories
Recipe
coordinateSystem = Cartesian2D- X axis:
axisType = Categorylabels = [A, B, C, D]LabelPlacement = Tick
- Y axis:
axisType = ValueautoRangeMin/autoRangeMax = true
- Series:
type = Line- points:
x=category index,y=value
Data example (conceptual):
(x=0, y=10)
(x=1, y=20)
(x=2, y=15)
(x=3, y=30)
Common pitfalls
- Points do not align with labels: check
xstarts from 0 and is within range (labels.Count) - Line looks broken/jumpy: check NaN/Infinity
2. Bar chart (Bar): centered categories + Y starts from 0
Target
- one bar per category
- labels centered under bars
- Y axis starts from 0 to avoid misleading scaling
Recipe
coordinateSystem = Cartesian2D- X axis:
axisType = Category- fill
labelswith categories LabelPlacement = CellCenter
- Y axis:
axisType = Value- force start at 0 (e.g.
minValue=0+autoRangeMax=true, or equivalent)
- Series:
type = Bar- adjust bar width via
BarSettings.barWidth
Data example:
(x=0, y=12)
(x=1, y=18)
(x=2, y=9)
Common pitfalls
- Bars appear between labels: switch
LabelPlacementtoCellCenter - Bars too dense/too sparse: adjust
barWidth,barGap,categoryGap
3. Grouped bars (Grouped Bar): multiple series share the same categories
Recipe
- multiple
Serie, alltype = Bar - each Serie uses the same
x=category indexconvention - use
Serie.nameas group name (used by legend/tooltip)
Example (conceptual):
Serie A:
(x=0, y=10) (x=1, y=12)
Serie B:
(x=0, y=8) (x=1, y=15)
4. Stacked bars (Stacked Bar): stacked + stackGroup
Recipe
- Bar series that should stack:
BarSettings.stacked = trueBarSettings.stackGroup = "Group1"(same group stacks)
Common pitfalls
- Stack height looks wrong: ensure all stacked series use exactly the same
stackGroup
5. Scatter chart (Scatter): Value X/Y + hover + sizeMapping
Target
- X/Y are continuous numeric values
- point grows on hover
- point size can be mapped by a dimension (sizeMapping)
Recipe
coordinateSystem = Cartesian2D- Set both X/Y axes to
Value type = Scatter- Data points: at least
x/value, optionally usezas third dimension ScatterSettings.hover.enabled = true
Common pitfalls
- Points are too small: increase
PointSettings.size - Hover does not respond: check
HoverHighlightSettings.enabledandpickRadius
6. Heatmap chart (Heatmap): (x, y, value) triplets
Target
- X/Y are Category axes (2D labels)
- color is determined by value
Recipe
coordinateSystem = Cartesian2D- X axis: Category + labels (column labels)
- Y axis: Category + labels (row labels)
type = Heatmap- Data points:
x = column indexy = row indexvalue = intensity
Example (conceptual):
(x=0, y=0, value=0.2)
(x=1, y=0, value=0.8)
(x=0, y=1, value=0.5)
Common pitfalls
- All cells look the same: check
HeatmapSettings.autoRange/minValue/maxValue/clamp - Cells too small/too dense: adjust
cellSizePx/cellGapPx
7. Radar chart (Radar): dimension index + value
Recipe
coordinateSystem = Polar2Dtype = Radar- Data points:
x = dimension indexvalue = numeric valuename = dimension name(recommended for labels/tooltip)
Example:
(x=0, value=72, name="Attack")
(x=1, value=55, name="Defense")
(x=2, value=90, name="Speed")
Common pitfalls
- Radar labels are missing/messy: ensure your dimension label source is consistent (do not depend on Cartesian axes)
- Radar not visible: check
coordinateSystemis Polar2D
8. Interaction/tooltip stability: SeriesData.id
If you enabled selection/tooltip/hover, it is generally recommended:
- keep each point
SeriesData.idstable
Otherwise, if you generate new ids every refresh, interaction state cannot be associated correctly.
Next
- Next:
04_09-FAQ.md(common issues + the fastest troubleshooting path)