You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中DGCharts堆叠柱状图转水平堆叠柱状图求助

DGCharts:堆叠柱状图转水平及坐标轴标签角度调整方案

一、转换为水平堆叠柱状图

  1. 替换图表实例类型:将BarChartView(Swift)/BarChart(Android)替换为HorizontalBarChartView/HorizontalBarChart
  2. 配置堆叠模式:
    • 为每个BarDataSet设置isStacked = true
    • 若需要显示堆叠分组标签,设置dataSet.stackLabels = ["分组1", "分组2", ...]
  3. 适配数据结构:水平柱状图的坐标轴角色互换,需将原垂直图中类别索引放在Entry的y值,数值放在Entry的x值

Swift代码示例

// 初始化水平堆叠柱状图
let chartView = HorizontalBarChartView(frame: view.bounds)
view.addSubview(chartView)

// 构建堆叠数据条目(示例:2个类别,每个类别3个堆叠项)
let entries = [
    BarChartDataEntry(x: 10, y: 0, values: [3, 4, 3]), // 类别0的堆叠数值
    BarChartDataEntry(x: 15, y: 1, values: [5, 6, 4])  // 类别1的堆叠数值
]

// 配置数据集
let dataSet = BarDataSet(entries: entries, label: "数据")
dataSet.isStacked = true
dataSet.stackLabels = ["A组", "B组", "C组"]

// 绑定数据到图表
let data = BarChartData(dataSet: dataSet)
chartView.data = data

二、调整坐标轴标签角度

根据水平柱状图的轴特性(X轴为垂直轴、Y轴为水平轴),按需调整对应轴的标签角度:

调整底部水平轴(Y轴)标签角度

let yAxis = chartView.yAxis
yAxis.labelRotationAngle = 45 // 设置旋转角度(如45度)
yAxis.labelFont = .systemFont(ofSize: 10) // 可选:缩小字体避免重叠

调整左侧垂直轴(X轴)标签角度(按需)

let xAxis = chartView.xAxis
xAxis.labelRotationAngle = 0 // 垂直轴标签一般无需旋转,如需调整可设置对应角度

内容的提问来源于stack exchange,提问作者Asad Farooq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:45:01