Предикаты
Предикат проверяет запись данных и возвращает true или false. Он применяется в преобразовании фильтрации и в свойстве test условного кодирования. В Vega-Lite предикат можно задать четырьмя способами:
- Строкой выражения Vega, обращаясь к текущей записи через
datum. Например,datum.b2 > 60проверяет, больше ли значение поляb2числа60. - Предикатом поля:
equal,lt,lte,gt,gte,range,oneOfилиvalid. - Предикатом параметра, проверяющим принадлежность записи выбранному набору.
- Логической комбинацией перечисленных условий.
Предикат поля
Предикат поля содержит имя проверяемого поля в field и один оператор сравнения. Значение сравнения может быть строкой, числом, логическим значением или объектом даты и времени. Свойство timeUnit позволяет перед сравнением выделить из временного поля нужную единицу времени.
| Свойство | Тип | Описание |
|---|---|---|
field |
FieldName |
Обязательное. Проверяемое поле данных. |
timeUnit |
TimeUnit, BinnedTimeUnit, TimeUnitParams |
Единица времени для проверяемого поля. |
Равенство — equal
| Свойство | Тип | Описание |
|---|---|---|
equal |
string, number, boolean, DateTime, ExprRef |
Обязательное. Значение, которому должно быть равно поле. |
Проверяет, равно ли значение указанному. Например, этот предикат оставит записи с красным цветом автомобиля:
{"field": "car_color", "equal": "red"}
Меньше — lt
| Свойство | Тип | Описание |
|---|---|---|
lt |
string, number, DateTime, ExprRef |
Обязательное. Значение, которого поле должно быть меньше. |
Проверяет, меньше ли значение заданного. Например, высота меньше 180:
{"field": "height", "lt": 180}
Меньше или равно — lte
| Свойство | Тип | Описание |
|---|---|---|
lte |
string, number, DateTime, ExprRef |
Обязательное. Значение, которого поле должно быть меньше или которому оно должно быть равно. |
Проверяет, меньше ли значение заданного или равно ему. Здесь сравниваются только годы, не полные даты:
{"timeUnit": "year", "field": "Year", "lte": "2000"}
Больше — gt
| Свойство | Тип | Описание |
|---|---|---|
gt |
string, number, DateTime, ExprRef |
Обязательное. Значение, которого поле должно быть больше. |
Проверяет, больше ли значение заданного. Строки сравниваются по правилам JavaScript с учётом регистра: "A" < "B", но и "B" < "a". Например:
{"field": "state", "gt": "Arizona"}
Больше или равно — gte
| Свойство | Тип | Описание |
|---|---|---|
gte |
string, number, DateTime, ExprRef |
Обязательное. Значение, которого поле должно быть больше или которому оно должно быть равно. |
Например, высота не меньше нуля:
{"field": "height", "gte": 0}
Диапазон — range
| Свойство | Тип | Описание |
|---|---|---|
range |
(number, DateTime, null, ExprRef)[], ExprRef |
Обязательное. Массив из двух значений — включённых нижней и верхней границ, между которыми должно находиться значение поля записи для её включения в отфильтрованные данные. |
Примеры
{"field": "x", "range": [0, 5]}проверяет, что0 ≤ x ≤ 5.{"timeUnit": "year", "field": "date", "range": [2006, 2008]}проверяет, что значениеdateнаходится между 2006 и 2008 годами.{"field": "date", "range": [{"year": 2006, "month": "jan", "date": 1}, {"year": 2008, "month": "feb", "date": 20}]}проверяет, что дата находится между 1 января 2006 года и 20 февраля 2008 года.
Одно из значений — oneOf
| Свойство | Тип | Описание |
|---|---|---|
oneOf |
string[], number[], boolean[], DateTime[] |
Обязательное. Набор значений, которому должно принадлежать значение поля записи для её включения в отфильтрованные данные. |
Например, {"field": "car_color", "oneOf": ["red", "yellow"]} проверяет, что цвет автомобиля — "red" или "yellow".
Корректное значение — valid
| Свойство | Тип | Описание |
|---|---|---|
valid |
boolean |
Обязательное. При true значение поля должно быть корректным: не null и не NaN. |
Например, {"field": "car_color", "valid": true} проверяет, что значение поля корректно: не равно null и не является NaN.
Предикат параметра
Предикат параметра содержит имя выделения в param. Он проверяет, принадлежит ли запись текущему выделению. Свойство empty управляет поведением до выбора значений.
| Свойство | Тип | Описание |
|---|---|---|
param |
ParameterName |
Обязательное. Имя параметра, используемого для фильтрации. |
empty |
boolean |
Для параметров выделения предикат пустого выделения по умолчанию возвращает true. Задайте empty: false, чтобы переопределить это поведение. |
В примере {"param": "brush"} оставляет записи, попавшие в область выделения brush. По умолчанию пустое выделение содержит все значения, поэтому нижнее представление вначале заполнено целиком. Это поведение можно изменить необязательным свойством empty:
При динамической фильтрации области определения шкал могут меняться, из-за чего подписи и заголовки смещаются. Чтобы этого избежать, задайте minExtent для соответствующей оси, например {"axis": {"minExtent": 30}}.
Логическая комбинация предикатов
Условия можно объединять операторами and, or и not.
Примеры
{"and": [{"field": "height", "gt": 0}, {"field": "height", "lt": 180}]}проверяет, что0 < height < 180.{"not": {"field": "x", "range": [0, 5]}}проверяет, что x не входит в диапазон[0, 5]с включёнными границами.