198 AssetAllocationChart
用途
资产配置图。
最小示例
items := []finance.AllocationItem{{Name: "Stocks", Value: 60, Target: 50}, {Name: "Bonds", Value: 30, Target: 40}, {Name: "Cash", Value: 10, Target: 10}}
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
r := finance.AssetAllocationChart(c, items, finance.AssetAllocationChartOptions{Frame: chart.ChartFrame{Label: "Allocation"}})
if r.Changed() || r.Retried() {
fmt.Println(r.Point)
}
}
ui.Render(view, 960, 440, 1)参数
Version 在原地修改数据时递增。环形图合并小于 1 度的多个扇区;列表虚拟化保留每项的占比、目标与偏离。
items 包含 Name、Value、Target;目标总和为 100 或全部 0。Frame.Label 必填;Tolerance 默认 5 个百分点;Format 可覆盖数值。
状态
默认与数据边界;图表的 Frame 支持加载、空、失败占位。
事件
if r.Changed() || r.Retried() { 调用方回调(r.Point) }
键盘操作
Tab 聚焦环形图;方向键逐项读数;Home/End 到首尾。
限制
列表同时提供占比、目标、偏离;负资产值触发 panic。

