A Series
- это класс-оболочка вокруг списка «точек» - проще всего представить пары [x, y] - вместе с горсткой функций, которые умеют интерпретировать / форматировать эти [ x, y] указывает на (обычно) строки. Член серии data
представляет собой список этих точек; члены xxxFn
- это функции.
Что может немного запутать, так это то, что эти точки представлены произвольным классом (в вашем случае PopulationData
), а не, скажем, парой целых чисел ( один для x, один для y). Итак, charts
не знает, как интерпретировать PopulationData
, если вы этого не скажете. Для этого предназначены вспомогательные функции, которые вы предоставляете.
measureFn
- это функция, которая принимает PopulationData
и возвращает переменную оси «y». domainFn
то же самое для переменной оси «x». (Второй параметр - index
, на случай, если вам нужно знать, какая точка / полоса отображается.)
Текущий код особенно трудно понять, поскольку автор перегрузил word series
, где может иметь смысл использовать pd
, означающее «экземпляр данных о совокупности», и что это функции, которые возвращают соответствующую часть экземпляра.
Перепишите его как:
domainFn: (PopulationData pd, _) => pd.year.toString(),
measureFn: (PopulationData pd, _) => pd.population,
colorFn: (PopulationData pd, _) => pd.barColor,
, чтобы легче было увидеть, что year
, population
и barColor
являются членами PopulationData
.
Также см. простой пример в графиках примеры.