【发布时间】:2019-12-30 22:55:37
【问题描述】:
我正在尝试使用 TornadoFX 将数据表转换为一系列折线图。表中的每一行都应对应于图表中的命名行。首先,我遵循了TornadoFX guide,但这仅涵盖了具有硬编码值的用例。
这是 TornadoFX 指南示例:
linechart("Unit Sales Q2 2016", CategoryAxis(), NumberAxis()) {
multiseries("Product X", "Product Y") {
data("MAR", 10245, 28443)
data("APR", 23963, 22845)
data("MAY", 15038, 19045)
}
}
我成功地为该系列创建了标签,但仅此而已:
val multiSeriesHeader = table.columHeaders.map { it.toString() }.toTypedArray()
linechart("Unit Sales Q2 2016", CategoryAxis(), NumberAxis()) {
multiseries(*multiSeriesHeader) {
// Here I want something like:
// multidata( array of lines in the matrix, in the "data" format )
}
}
我的最终目标是“自动生成”data("Month", values...) 的新行,因此我可以通过将更多值附加到“行数据”列表来为图表创建更多行。但是,我对linechart 方法创建折线图的方式以及对multiseries 和data 的后续调用如何转换为参数(通过这些块)感到完全迷茫。
我是 TornadoFX 的新手,对 Kotlin 也有些陌生。所以,我不知道语言或库中是否有一个技巧可以解决我的问题。非常感谢您的帮助!
【问题讨论】:
-
图表值是否会绑定到对象列表(意味着图表会立即在图表中看到更改)还是更像是从列表中生成图表的按钮(没有实时更改,就在点击按钮时)?
标签: kotlin jvm linechart variadic tornadofx