点的坐标 - ios-图表 [Swift]
Coordinates of a point - ios-charts [Swift]
我在图书馆里找了两天,不幸的是我没能找到如何在 px 中的两个数据之间得到 space。我的 linechartview
包含在 UIScrollView
中,目的是获取位于 ScrollView
.
中心的 linechartview
点的值
通常,它有一个transfomer来将数据值转换为px值,如:
position.x = CGFloat(i) // index on x axis, like 0,1,2
position.y = 0.0
position = CGPointApplyAffineTransform(position, valueToPixelMatrix)
以上代码摘自internal func drawLabels
,你应该看看
这个位置之后就是px。屏幕上的值。你只需要弄清楚你是如何得到它并传递给你的其他函数的,比如使用委托
使用时https://github.com/danielgindi/Charts
您可以通过:
let yAxis: Double = 1000 // your value on y-Axis
let xAxis: Double = 5 // your value on x-Axis
let pixel: CGPoint = yourChartView.pixelForValues(x: xAxis, y: yAxis, axis: .right)
或
let yourDataArray = [ChartDataEntry]()
//... some code here for filling data
//now, get then position
if let lastPosition = yourDataArray.last {
let point:CGPoint = yourChartView.getPosition(entry: , axis: .right)
}
此外,您可以检查https://github.com/danielgindi/Charts/blob/master/Source/Charts/Utils/Transformer.swift是否使用:
let valueToPixelMatrix = yourChartView.getTransformer(forAxis: YAxis.AxisDependency.right).valueToPixelMatrix
我在图书馆里找了两天,不幸的是我没能找到如何在 px 中的两个数据之间得到 space。我的 linechartview
包含在 UIScrollView
中,目的是获取位于 ScrollView
.
linechartview
点的值
通常,它有一个transfomer来将数据值转换为px值,如:
position.x = CGFloat(i) // index on x axis, like 0,1,2
position.y = 0.0
position = CGPointApplyAffineTransform(position, valueToPixelMatrix)
以上代码摘自internal func drawLabels
,你应该看看
这个位置之后就是px。屏幕上的值。你只需要弄清楚你是如何得到它并传递给你的其他函数的,比如使用委托
使用时https://github.com/danielgindi/Charts
您可以通过:
let yAxis: Double = 1000 // your value on y-Axis
let xAxis: Double = 5 // your value on x-Axis
let pixel: CGPoint = yourChartView.pixelForValues(x: xAxis, y: yAxis, axis: .right)
或
let yourDataArray = [ChartDataEntry]()
//... some code here for filling data
//now, get then position
if let lastPosition = yourDataArray.last {
let point:CGPoint = yourChartView.getPosition(entry: , axis: .right)
}
此外,您可以检查https://github.com/danielgindi/Charts/blob/master/Source/Charts/Utils/Transformer.swift是否使用:
let valueToPixelMatrix = yourChartView.getTransformer(forAxis: YAxis.AxisDependency.right).valueToPixelMatrix