plot - 在 Observable Plot 中,如何从 bin() 变换中对堆栈进行排序/排序?
问题描述
我正在 Observable 的新Plot库中处理堆积条形图。来自 Vega 和 D3 的情况还不错,但我无法找到或弄清楚如何从我正在使用的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()
做得很好,产生一个图表,其中堆栈根据输入顺序进行排序。
我希望根据总和对堆栈进行排序,事实上,如果我添加Plot.stack选项order
(参见上面的注释行),我可以按总和排序:
关闭!现在我只需要颠倒顺序。我假设,因为我可以使用该order
选项,也许我也可以使用该reverse
选项(参见上面的注释行)。 那似乎行不通。
我的第二个假设是,由于这些转换应该是“可组合的”,我应该能够将 mybinX
与 a结合起来stackY
,但我找不到这种组合的例子。我尝试过Plot.stackY(Plot.binX({...}, { ... order:"sum", reverse:true })
, 和类似的变体,但它们似乎也不起作用。
总之,我很想知道如何在使用 binX 的同时控制堆叠条形图中的堆叠顺序。谢谢!
解决方案
谢谢你。似乎有一个错误,并且 bin 转换无用地消耗了 {order} 选项。我们会努力解决这个问题。同时,您可以将其添加到 bin 变换的“外部”,如下所示:
Plot.rectY(data,
Plot.stackY({
...Plot.binX(
{ y: "count" },
{ x: "body_mass", fill: "species", order: "sum" }
),
reverse: true
})
).plot()
推荐阅读
- c++ - 在编译时根据一些枚举值添加额外的方法
- firebase - 在 Unity3D 中检查 Firebase 是否初始化成功?
- python - 如何动态构建函数并找到根python
- java - 反转类中的数组不会改变元素的顺序
- csv - 如何打开具有多列和多行的大型 CSV 文件
- socket.io - pixiJS 和 socket.io 如何一起工作?(一般问题)
- c - 无法理解 ip 结构的实现
- react-native - React Native & Amplify - 构建命令
- mysql - 如何在mysql中获取上周五过去7天的数据?
- javascript - 如何在不按下键盘的情况下让 JavaScript 按下键盘上的键?js