我的目标是创建类似于下图的图表。我实际上设法结合了魔数(Magic Number)和设定比例 (0.001 - 1000) 来实现它。因此,总而言之,我正在寻找一个公式来计算正确的位置,以在对数 y 刻度上为预定义值的范围绘制线条。
Y轴:对数刻度
X 轴:整数
欢迎任何帮助!
最佳答案
感谢@DietrichEpp 的帮助,我解决了这个问题。这是计算给定 Y 坐标的函数:
screenY0 - y 轴上的最小点
screenY1 - y 轴上的最大点
dataY0 - 响应比例顶部的值
dataY1 - 响应刻度底部的值
func convert(data: Double, screenY0:CGFloat, screenY1:CGFloat, dataY0:Double, dataY1:CGFloat) ->CGFloat{
return screenY0 + (log(CGFloat(data)) - log(CGFloat(dataY0))) / (log(CGFloat(dataY1)) - log(CGFloat(dataY0))) * (screenY1 - screenY0)
}
关于swift - Swift 中具有对数 y 轴的图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34427225/