ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DGCharts坐标轴定制完全指南:XAxis、YAxis与双Y轴一次搞定

DGCharts坐标轴定制完全指南:XAxis、YAxis与双Y轴一次搞定 DGCharts坐标轴定制完全指南XAxis、YAxis与双Y轴一次搞定【免费下载链接】ChartsBeautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart.项目地址: https://gitcode.com/gh_mirrors/cha/ChartsDGChartsMPAndroidChart 的 Apple 官方移植版是 iOS/tvOS/macOS 上绘制精美图表的主流开源库。本文带你用最短篇幅掌握DGCharts 坐标轴定制的全部核心技巧XAxis 横轴标签旋转与位置、YAxis 纵轴范围与倒置、以及双 Y 轴数据绑定配好之后你的柱状图、折线图立刻专业起来。️ 先搞懂坐标轴的三级结构在 DGCharts 中所有坐标轴都继承自同一个基类这决定了它们的通用能力完全一致AxisBase基类 ├── XAxis 横轴标签旋转、位置、换行 └── YAxis 纵轴左右双轴、范围、倒置、零线基类 AxisBase.swift 定义了网格线、轴线、标签字体、格式化器、刻度数量等通用属性横轴 XAxis.swift 额外提供标签旋转角度、上/下位置、自动换行纵轴 YAxis.swift 额外提供左右轴依赖、数值范围、倒置方向而图表视图 BarLineChartViewBase.swift 则直接暴露了三个可定制对象这是你做一切坐标轴调整的入口chartView.xAxis // 横轴 chartView.leftAxis // 左纵轴 chartView.rightAxis // 右纵轴下图是一个默认配置的柱状图左右双轴同时可见——这也是 DGCharts 的默认状态 XAxis 横轴定制解决标签重叠第一招横轴最常见的痛点是「日期/月份标签互相重叠」。DGCharts 提供了三件套属性作用建议值labelRotationAngle标签旋转角度度45 或 -45labelPosition标签在图表上方/下方/两侧.bottom最常用granularity最小刻度间隔防止缩小时标签重复1按天数据wordWrapEnabled长标签自动换行长文本标签开启avoidFirstLastClippingEnabled首尾标签不被裁剪truelet xAxis chartView.xAxis xAxis.labelRotationAngle 45 // 标签倾斜 45° xAxis.granularity 1 // 每个数据点都显示刻度 xAxis.valueFormatter self // 自定义格式如显示月份实战技巧官方演示 CombinedChartViewController.swift 用labelPosition .bothSided 自定义 Formatter把月份标签同时画在图表上下两端非常适合作为日期横轴的参考实现。 YAxis 纵轴定制范围、间距与倒置纵轴继承自 AxisBase因此网格线颜色、字体、labelCount刻度数量默认 6等属性直接可用。纵轴独有的高频属性属性作用axisMinimum/axisMaximum手动固定坐标轴上下限调用 AxisBase.swift 中的resetCustomAxisMin()/resetCustomAxisMax()可恢复自动计算inverted倒置坐标轴最大值在底部spaceTop/spaceBottom数据上下留白比例默认各 10%drawZeroLineEnabled强制绘制零线含负值时很实用labelPosition标签放在图表内.insideChart或外.outsideChartminWidth/maxWidth限制轴宽避免长数字把图表挤窄let leftAxis chartView.leftAxis leftAxis.axisMinimum 0 // 柱状图建议从 0 开始 leftAxis.granularity 5 // 刻度间隔 5 leftAxis.inverted true // 需要时可倒置 双 Y 轴一套图展示两组量纲不同的数据双 Y 轴是 DGCharts 最实用的功能之一比如「销售额柱状图左轴 增长率折线图右轴」共用一张图。它分两步第 1 步让数据集中成声明自己挂在哪个轴let lineSet LineChartDataSet(entries: growth, label: 增长率) lineSet.axisDependency .right // 挂右轴 let barSet BarChartDataSet(entries: sales, label: 销售额) barSet.axisDependency .left // 挂左轴第 2 步独立配置右轴样式并隐藏其网格线let rightAxis chartView.rightAxis rightAxis.axisMinimum 0 rightAxis.drawGridLinesEnabled false // 避免两套网格线打架官方折线/柱状混合演示 BarChartViewController.swift 中就有完整的右轴配置示例可直接参考。两个常见坑默认左右轴都会画网格线务必关掉右轴网格drawGridLinesEnabled false右轴默认是启用的不需要双轴时记得chartView.rightAxis.enabled false参考 DemoBaseViewController.swift 中的通用处理 进阶隐藏、留白与网格线微调需求写法隐藏左轴leftAxis.enabled false隐藏右轴rightAxis.enabled false去掉某方向网格线xAxis.drawGridLinesEnabled false顶部留白leftAxis.spaceTop 0.15固定刻度数leftAxis.setLabelCount(8, force: true)隐藏左轴后的效果如下图表区域立刻更紧凑✅ 快速检查清单✅ 标签重叠 → 旋转labelRotationAngle 设置granularity✅ 柱状图比例失真 → 左轴axisMinimum 0✅ 双 Y 轴 → 数据集中配置axisDependency 关闭右轴网格线✅ 视觉杂乱 → 用enabled/drawGridLinesEnabled做减法掌握以上四个部分DGCharts 坐标轴定制基本就全覆盖了。想继续深入可以浏览 ChartsDemo-iOS/Swift/Demos/ 下的各类图表演示每个文件都是一个可运行的坐标轴配置样例。【免费下载链接】ChartsBeautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart.项目地址: https://gitcode.com/gh_mirrors/cha/Charts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表