簡體   English   中英

Vega-Lite:如何按字段求和並將其用作類別

[英]Vega-Lite: How to sum by a field and use it as a category

所以我的情況如下。 我有 60.000 張圖像,它們使用 4 個模型進行了訓練。 每個 model 都試圖預測圖像中的內容,因此我最終得到了一個數據集,其中包含每個圖像出現 4 次的位置。 現在,我想根據有多少模型能夠正確地對每個圖像進行分組。 換句話說,一個圖像可能在所有 4 個模型中都被正確預測,而另一個在所有 4 個模型中都被錯誤地預測,所以第一個應該在類別 4 中,第二個應該在類別 1 中。

我如何使用 Vega-Lite 做到這一點(我知道我可以預處理數據,但我想直接用 Vega-Lite 來做)。 我嘗試了以下方法,但沒有成功:

vl.markPoint()
    .data(data)
    .transform(
      vl.groupby('image_id'),
      vl.joinaggregate( [{
      "op": "sum",
      "field": "acc",
      "as": "totalacc"}]),
      vl.calculate("datum.totalacc").as('total')
    )
    .encode(
      vl.y().sum('acc'),
      vl.x().fieldQ('total'),
      vl.detail().fieldQ('image_id')
    ).render();

vl.groupby()本身不會對數據做任何事情。 我懷疑您可能想要的轉換是這樣的:

    .transform(
      vl.groupby('image_id')
        .joinaggregate([{
          "op": "sum",
          "field": "acc",
          "as": "totalacc"
        }]),
      vl.calculate("datum.totalacc").as('total')
    )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM