Vega-Lite: доступ к вложенным полям канала повтора - PullRequest
1 голос
/ 09 июля 2020

Я хотел бы визуализировать медианное значение некоторых данных с течением времени с тремя полосами ошибок для разных диапазонов квантилей (охват между процентилями: от 5 до 95, от 10 до 90 и от 25 до 75). Наивным решением для этого было бы указать три уровня вручную (что отлично работает). Однако я не могу найти способ указать это менее подробным образом через repeat.

Как я могу использовать канал повторения в этом примере:

{
    "repeat":{
        "layer":[
            {"low":"p5", "high":"p95"},
            {"low":"p10", "high":"p90"},
            {"low":"p25", "high":"p75"}
        ]
    },
    "spec":{
        "mark":{"opacity":0.15, "type":"errorband"},
        "encoding":{
            "x":{"field":"time"},
            "y":{"field":{"repeat":"layer.low"}, "type":"quantitative"},
            "y2":{"field":{"repeat":"layer.high"}}
        },
        "layer":[{"mark":{"type":"line"}, "encoding":{"x":{"field":"time"}, "y":{"field":"p50"}}}]
    }
}

Конечно, это не работает, поскольку layer.low не является повторяющимся каналом. Есть только канал layer.

  1. Как мне получить доступ к вложенным полям этого повторяющегося канала (low и high для каждого слоя)?
  2. Есть ли там своего рода "лучшая практика", как указать повторный просмотр по парам полей?

1 Ответ

1 голос
/ 14 июля 2020

repeat.layer принимает только список строк , а не список вложенных объектов. Грамматика Vega-Lite в настоящее время не обеспечивает естественного способа express того, что вы хотите сделать, с помощью оператора повтора. Лучшим подходом будет создание слоев ваших диаграмм вручную.

...