Swift中DGCharts堆叠柱状图转水平堆叠柱状图求助
DGCharts:堆叠柱状图转水平及坐标轴标签角度调整方案
一、转换为水平堆叠柱状图
- 替换图表实例类型:将
BarChartView(Swift)/BarChart(Android)替换为HorizontalBarChartView/HorizontalBarChart - 配置堆叠模式:
- 为每个
BarDataSet设置isStacked = true - 若需要显示堆叠分组标签,设置
dataSet.stackLabels = ["分组1", "分组2", ...]
- 为每个
- 适配数据结构:水平柱状图的坐标轴角色互换,需将原垂直图中类别索引放在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
相关产品推荐
相关产品推荐

