gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 23:07:11 25 4
gpt4 key购买 nike

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

我该怎么办?提前致谢。

最佳答案

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

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

您可以使用自定义格式化程序在每个轴点打印两个标签,从而将其中一个图表上的标签加倍。它看起来有多好取决于你的轴。实现完全独立的自动量程将是一项艰巨的任务。

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

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

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

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

希望对你有帮助

关于ios - 如何在 danielgindi iOS 图表中创建多个 y 轴折线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51416391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com