我在 iOS 上使用“Charts”库(由 Daniel Gindi 开发)。
我绘制了一个 LineChartView (那里没有问题),并且想要添加一条限制线来表示目标值:
let targetLine = ChartLimitLine(limit: targetValue, label: "")
lineChartView.leftAxis.addLimitLine(targetLine)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是:如果图表的 y 值离目标太远,则限制线不会显示在图表上。
例子:
如何确保无论 y 值是多少,限制线始终出现?
附录:这是我的绘图代码的其余部分,它非常标准:
let chartView = LineChartView()
chartView.backgroundColor = UIColor.whiteColor()
chartView.dragEnabled = false
chartView.doubleTapToZoomEnabled = false
chartView.pinchZoomEnabled = false
chartView.highlightPerTapEnabled = false
chartView.descriptionText = ""
chartView.legend.enabled = false
chartView.rightAxis.enabled = false
// Set y axis
let yAxis = chartView.leftAxis
yAxis.removeAllLimitLines()
yAxis.drawZeroLineEnabled = true
yAxis.drawLimitLinesBehindDataEnabled = true
yAxis.valueFormatter = yValuesFormatter
// Set x axis
let xAxis = chartView.xAxis
xAxis.labelPosition = .Bottom
xAxis.drawLabelsEnabled = true
xAxis.drawLimitLinesBehindDataEnabled = true
xAxis.avoidFirstLastClippingEnabled = true
// Create a new dataset
let dataSet = LineChartDataSet(yVals: entries, label: "")
dataSet.drawValuesEnabled = false
dataSet.lineWidth = 2
dataSet.colors = [UIColor.customBlue]
dataSet.circleRadius = 5
dataSet.circleColors = [UIColor.customBlue]
dataSet.drawCircleHoleEnabled = false
dataSet.fillColor = UIColor.cityzenAccent
dataSet.fillAlpha = 0.5
dataSet.drawFilledEnabled = (chartType == .linefill) ? true : false
let data = LineChartData(xVals: xValues, dataSets: [dataSet])
chartView.data = data
Run Code Online (Sandbox Code Playgroud)
限制线的代码发生在这一切之后。
谢谢
aft*_*han -1
/// if the chart is fully zoomed out, return true
open var isFullyZoomedOut: Bool
{
return isFullyZoomedOutX && isFullyZoomedOutY
}
/// - returns: `true` if the chart is fully zoomed out on it's y-axis (vertical).
open var isFullyZoomedOutY: Bool
{
return !(_scaleY > _minScaleY || _minScaleY > 1.0)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4441 次 |
| 最近记录: |