在 Observable Plot 中,如何从 bin() 转换 sort/order 堆栈?
In Observable Plot, how to sort/order the stack from a bin() transform?
我正在使用 Observable 的新 Plot library. It's not too bad coming from Vega and D3, but I cannot find or figure how to order the resulting stacked bars from the Plot.binX() 中的堆叠条形图。
我今天的实际标记是这样的:
Plot.rectY(hourlyUsageData, Plot.binX({
y: "sum",
title: bin => bin[0].Name
}, {
x: d => d3.timeHour.count(d3.timeDay(d.DateTime), d.DateTime),
y: d => d.kWh,
thresholds: 24,
fill: "Name",
//order: "sum",
//reverse: true
}))
Plot.binX()
效果很好,生成了一个图表,其中堆栈根据输入顺序进行排序。
我希望根据总和对堆栈进行排序,事实上,如果我为 order
添加 Plot.stack 选项(参见上面的注释行),我可以按总和排序:
关闭!现在我只需要颠倒顺序。我假设,因为我可以使用 order
选项,也许我也可以使用 reverse
选项(参见上面的注释行)。 这似乎行不通。
我的第二个假设是,因为这些转换应该是“可组合的”,所以我应该能够将我的 binX
与 stackY
组合起来,但我找不到一个例子这样的构图。我试过 Plot.stackY(Plot.binX({...}, { ... order:"sum", reverse:true })
和类似的变体,但 它们似乎也不起作用 。
总而言之,我很想知道如何在使用 binX 的同时控制堆叠条形图中的堆叠顺序。谢谢!
谢谢。似乎有一个错误,{order} 选项被 bin 转换白白消耗了。我们会尽力解决这个问题。同时,您可以像这样将它添加到 bin 转换“外部”:
Plot.rectY(data,
Plot.stackY({
...Plot.binX(
{ y: "count" },
{ x: "body_mass", fill: "species", order: "sum" }
),
reverse: true
})
).plot()
我正在使用 Observable 的新 Plot library. It's not too bad coming from Vega and D3, but I cannot find or figure how to order the resulting stacked bars from the Plot.binX() 中的堆叠条形图。
我今天的实际标记是这样的:
Plot.rectY(hourlyUsageData, Plot.binX({
y: "sum",
title: bin => bin[0].Name
}, {
x: d => d3.timeHour.count(d3.timeDay(d.DateTime), d.DateTime),
y: d => d.kWh,
thresholds: 24,
fill: "Name",
//order: "sum",
//reverse: true
}))
Plot.binX()
效果很好,生成了一个图表,其中堆栈根据输入顺序进行排序。
我希望根据总和对堆栈进行排序,事实上,如果我为 order
添加 Plot.stack 选项(参见上面的注释行),我可以按总和排序:
关闭!现在我只需要颠倒顺序。我假设,因为我可以使用 order
选项,也许我也可以使用 reverse
选项(参见上面的注释行)。 这似乎行不通。
我的第二个假设是,因为这些转换应该是“可组合的”,所以我应该能够将我的 binX
与 stackY
组合起来,但我找不到一个例子这样的构图。我试过 Plot.stackY(Plot.binX({...}, { ... order:"sum", reverse:true })
和类似的变体,但 它们似乎也不起作用 。
总而言之,我很想知道如何在使用 binX 的同时控制堆叠条形图中的堆叠顺序。谢谢!
谢谢。似乎有一个错误,{order} 选项被 bin 转换白白消耗了。我们会尽力解决这个问题。同时,您可以像这样将它添加到 bin 转换“外部”:
Plot.rectY(data,
Plot.stackY({
...Plot.binX(
{ y: "count" },
{ x: "body_mass", fill: "species", order: "sum" }
),
reverse: true
})
).plot()