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

6

我希望创建一个具有多个y轴的图形。在danielgindi图表中,双y轴图表是可能的,但我想要更多的两个y轴图表。如下图所示:

enter image description here

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请检查我的更新问题。 - Saurabh Jain
@DharmeshKheni,你可以给一些例子的链接吗? - Saurabh Jain
你能展示一下你现在的图形吗?我不太明白你具体想要添加什么。 - DevB2F
@DevB2F 我已经尝试了在两个轴x和y之间绘制图形,但我想要一个x轴和多个y轴。 - Saurabh Jain
1个回答

0

我刚刚快速查看了代码,简短的回答是只支持两个轴,你可以从枚举中看出这一点,因为轴依赖性只有两个选项。

如果你仍然想做一个三维图形,你可以通过自定义类和/或数据准备来解决一些限制。

你可以使用自定义格式化程序在一个图表上双重标签,以在每个轴点打印两个标签。它看起来有多好取决于你的轴。要实现完全独立的自动范围设置将是一个很大的挑战。

你不能为不同的数据集使用不同的比例尺,因为变换是由DataProvider提供的,基于依赖轴而不是数据集。

对第三个轴进行数据集绘制需要更多的工作,但并不可怕。快速查看渲染器代码显示,渲染器代码会要求数据集提供一个转换,将数据值转换为像素值,基于依赖轴。通过覆盖

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

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

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

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接