如何在danielgindi iOS图表中创建多个y轴折线图?

我想创建一个多个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轴。

我能怎么做? 提前致谢。

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

如果您仍想进行三轴图,则可以使用自定义类和/或数据准备来解决某些限制。

您可以使用自定义格式器在每个轴点上打印两个标签,从而使其中一个图形上的标签倍增。 它的外观有多好取决于您的轴。 进入完全独立的自动测距将是一个很大的问题。

您不能对不同的数据集使用不同的比例,因为转换是由DataProvider提供的,基于从属轴而不是数据集。 相对于第三轴绘制数据集更复杂,但并非如此。 快速查看渲染器代码显示渲染代码要求变换的数据集将数据值转换为基于从属轴的像素值。 通过覆盖

func getTransformer(forAxis axis:YAxis.AxisDependency) – > Transformer

在自定义数据集中,您可以让渲染器使用不同的y-scale / transform渲染数据值。

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

希望这可以帮助