Vega-Lite несколько полей на одной оси - PullRequest
0 голосов
/ 19 октября 2019

Я пытаюсь создать рамочный график в 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',

      },

   },

}

Я пыталсянаписание функции для создания лучших имен для пробного поля, но, очевидно, вы не можете запускать пользовательские функции в вычислениях преобразования. Есть ли способ придать этой оси более точные метки, и есть ли более очевидный способ получить несколько полей на одной оси.

...