柱状图(Bar)
本章目标:把柱状图在 EasyChart 中的 数据解释规则(SeriesData.x/value)、并列/堆叠的真实行为、以及常用样式字段一次讲清楚。
1. 适用场景
- 类目对比(A/B/C 的值对比)
- 分组对比(同一类目下多条 Bar 并列)
- 堆叠总量(同一类目下多条 Bar 堆叠)
2. 最小可用配置(Checklist)
ChartProfile.coordinateSystem = Cartesian2D- 轴
- X:通常
AxisType.Category(填写labels) - Y:通常
AxisType.Value(建议从 0 起)
- X:通常
- Series
- 添加 1 条
Serie Serie.type = BarSerie.seriesData至少 1 个点
- 添加 1 条
3. Inspector 对应字段
-
Axis Settings
cartesian.xAxisId / cartesian.yAxisIdaxes[](X/Y 对应 AxisConfig)
-
Series
series[i].type = Barseries[i].settings:实际类型为BarSettingsbarWidthstacked/stackGroupbarGap/categoryGapcornerRadius/cornerSegmentstextureFill(颜色/纹理)border/backgroundhover(开启后支持拾取/高亮)
4. SeriesData 字段解释(按运行时代码)
柱状图核心使用:
-
类目/横向位置:
SeriesData.x- 运行时会对
x做RoundToInt,因此你应该把它当作“类目索引”来用。
- 运行时会对
-
柱高:
SeriesData.value -
SeriesData.y/SeriesData.z对 Bar 图 不参与渲染(不要把 y 当柱高)。
5. 最常见模板:Category X + Value Y
5.1 X 轴(Category)
AxisType = Categorylabels = ["A","B","C",...]- 推荐
labelPlacement = CellCenter(柱子更容易居中对齐)
5.2 数据写法
x = 类目索引(0/1/2…)value = 柱高
6. 分组柱(多系列并列)的真实规则
并列柱的关键点是:
- 多条
Serie,都type=Bar - 所有 serie 共享同一套 X 类目(同一套 labels)
- 每条 serie 的每个点使用相同的
x索引落到同一个类目
并列间距相关字段:
BarSettings.barGap:同一类目下,各组柱之间的间隔BarSettings.categoryGap:类目与类目之间的额外间隔(会影响边缘留白)
7. 堆叠柱(stacked)的真实规则
堆叠发生在“同一个 stackGroup 的 Bar serie”之间:
BarSettings.stacked = trueBarSettings.stackGroup = "Group1"
运行时堆叠逻辑要点:
- 对同一个
x(类目索引)分别累计正值/负值(正负会分开堆) - 堆叠后的每根柱顶部 = 当前累计底 +
value
8. 常见坑与排错
-
柱子夹在两个标签之间 / 对不齐
- 优先检查 X 轴
labelPlacement(建议CellCenter) - 确认
x是否为整数索引(运行时会 Round)
- 优先检查 X 轴
-
柱子从中间起,不从 0 起
- 检查 Y 轴(Value Axis)的
autoRangeMin是否关闭并锁定minValue=0
- 检查 Y 轴(Value Axis)的
-
堆叠结果不对
- 检查是否所有需要堆叠的 serie 都设置了相同的
stackGroup - 注意:正值和负值会分别堆叠
- 检查是否所有需要堆叠的 serie 都设置了相同的
9. 深入参考
- 轴与范围、Series 与数据:
00-WorkflowAndLibrary.md - 常用配方:
05-CommonRecipes.md - FAQ:
06-FAQ.md