Я пытаюсь создать рамочный график в Vega-Lite, но моя порядковая ось может варьироваться между 3 категориями в 2 полях, что в общей сложности дает 9 вариантов, и мне не удается найти хороший способ сделать это. У меня был успех с тремя объединенными представлениями, но это создает большую избыточность. Моя следующая идея состояла в том, чтобы вычислить новое значение для использования в качестве оси y, и это на самом деле работало довольно хорошо , но это привело к некоторым странным именам осей.
const box ={
data:{
url:"assets/summary_mturk_data.csv",
},
transform:[
{
filter:"datum.guard_error == 0"
},
{
calculate:'1-datum.pretest_error',
as:'pretest_acc'
},
{
calculate:'1-datum.train_error',
as:'train_acc'
},
{
calculate:'1-datum.posttest_error',
as:'posttest_acc'
},
{
fold:[
'pretest_acc',
'train_acc',
'posttest_acc'
],
as:[
'phase',
'acc'
]
},
{
calculate:'datum.phase + datum.condition',
as:'trial'
},
],
mark:{
type:"boxplot",
extent:"min-max",
},
encoding:{
x:{
field:'acc',
type:'quantitative',
},
y:{
field:'trial',
type:'ordinal',
},
},
}
Я пыталсянаписание функции для создания лучших имен для пробного поля, но, очевидно, вы не можете запускать пользовательские функции в вычислениях преобразования. Есть ли способ придать этой оси более точные метки, и есть ли более очевидный способ получить несколько полей на одной оси.