[英]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.