MujicaUI

Charts II · #130

ParallelCoordinates 浅色主题渲染快照
浅色 · 渲染快照
ParallelCoordinates 深色主题渲染快照
深色 · 渲染快照

130 ParallelCoordinates 平行坐标

用途

在多条平行轴间展示每行数值;轴上刷选筛除行,当前读数行用粗线高亮。

最小示例

filters := map[string][2]float64{}
axes := []string{"Age", "Hymns", "Vigils"}
rows := [][]float64{{20, 3, 9}, {35, 8, 2}, {50, 5, 5}}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	chart.ParallelCoordinates(c, &filters, axes, rows, chart.ParallelCoordinatesOptions{Frame: chart.ChartFrame{Label: "Monks"}, Names: []string{"Agnes", "Clare", "Hild"}})
}
ui.Render(view, 400, 300, 1)

参数

filters *map[string][2]float64 必填,键为轴名,值为有限递增范围。axes []string 至少两个唯一非空名称;每行长度与轴数一致。NaN 为缺值。Names 为逐行名称,nil 显示序号。Frame 与 Format 同其他图表。

状态

默认、高亮、筛除、加载、错误、空数据、祖先禁用;筛除行的读数附带本地化文字。

事件

Changed() 表示读数行变化;ValueChanged() 表示刷选范围变化;Retried() 表示重试。

键盘操作

Tab 聚焦;方向键逐行读数;Home/End 首尾。Alt+PageUp/PageDown 选择轴;Alt+上下调整下端;Alt+Shift+上下调整上端;Alt+Delete 清除该轴刷选。

限制

指针拖动轴设置范围,轴上点击清除范围。100,000 行绘制数量受图表高度约束,键盘可读取全部行。范围与过滤仅在数据或筛选变化时计算;更新数据需替换外层 rows 切片。