【问题标题】:How to create multiple y-axis Line chart in danielgindi iOS chart?如何在 danielgindi iOS 图表中创建多个 y 轴折线图?
【发布时间】:2025-12-08 20:05:01
【问题描述】:

我想创建一个具有多个 y 轴的图形。在 danielgindi 图表中可以进行决斗 y 轴图,但我想要更多的两个 y 轴图。如下图:

let set1 = LineChartDataSet(values: yVals1, label: "DataSet 1")
set1.axisDependency = .left
set1.setColor(UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1))
set1.setCircleColor(.white)
set1.lineWidth = 2
set1.circleRadius = 3
set1.fillAlpha = 65/255
set1.fillColor = UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1)
set1.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1)
set1.drawCircleHoleEnabled = false

let set2 = LineChartDataSet(values: yVals2, label: "DataSet 2")
set2.axisDependency = .right
set2.setColor(.red)
set2.setCircleColor(.white)
set2.lineWidth = 2
set2.circleRadius = 3
set2.fillAlpha = 65/255
set2.fillColor = .red
set2.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1)
set2.drawCircleHoleEnabled = false

这是 danielgindi 图表代码,但在此代码中显示双 y 轴。

我该怎么办? 提前致谢。

【问题讨论】:

  • @DharmeshKheni 请检查我更新的问题
  • @DharmeshKheni 能否提供一些示例链接
  • 您能展示一下您现在拥有的图表的图像吗?我不明白你到底想添加什么。
  • @DevB2F 我已经尝试了两个轴 x 和 y 之间的图表,但我想要 x 轴和多个 y 轴..

标签: ios swift charts linechart ios-charts


【解决方案1】:

我只是快速浏览了一下代码,简短的回答是只支持两个轴,我想你可以猜到这一点,因为轴依赖是一个有两个选项的枚举。

如果您仍想制作三轴图,您可以通过自定义类和/或数据准备来解决此限制。

您可以通过使用自定义格式化程序在每个轴点打印两个标签来将其中一个图表上的标签加倍。它看起来有多好取决于你的轴。实现完全独立的自动量程将是一个很大的问题。

您不能对不同的数据集使用不同的比例,因为转换是由 DataProvider 提供的,基于依赖轴,而不是数据集。 根据第三个轴绘制数据集有点复杂,但并不可怕。快速浏览一下渲染器代码会发现,渲染器代码要求数据集进行转换,以根据相关轴将数据值转换为像素值。通过覆盖

func getTransformer(forAxis axis: YAxis.AxisDependency) -> 变压器

在您的自定义数据集中,您可以让渲染器使用不同的 y 比例/变换来渲染您的数据值。

或者,您可以将两个数据集的源数据转换为 0-1 的范围(例如),然后在您的自定义格式化程序中转换回轴标签。这会破坏数据值标签,但我没有看到您在示例中使用它们。

希望对你有帮助

【讨论】: