折线图填充颜色褪色

时间:2017-08-11 10:48:24

标签: swift ios-charts

我正在尝试使用一种填充颜色设置折线图,但由于某种原因,填充颜色会褪色。

实施例

enter image description here

我添加到屏幕中间的随机视图和折线图的填充颜色都设置为红色,但由于某种原因,图表的填充颜色会变淡。

可以在这里看到代码

@IBOutlet var liveChart : LineChartView!
    override func viewDidLoad() {
        super.viewDidLoad()

        self.title = "Chart Tests"

        configureChart(chart: liveChart)

        var xAxis = [String]()
        var yAxis = [Double]()
        for _ in 0..<10
        {
            xAxis.append("")
            let yVal = Double(randomBetweenNumbers(firstNum: 1.0, secondNum: 100.0))
            yAxis.append(yVal)
        }
        setData(xAxisArray: xAxis, yAxisArray: yAxis, chart: liveChart)

        let testView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
        testView.center = view.center
        testView.backgroundColor = UIColor.red
        view.addSubview(testView)
    }

    func randomBetweenNumbers(firstNum: CGFloat, secondNum: CGFloat) -> CGFloat{
        return CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)
    }

    func configureChart(chart : LineChartView)
    {
        chart.chartDescription?.text = ""
        chart.noDataText = "Loading Data"
        chart.backgroundColor = UIColor.clear

        chart.drawGridBackgroundEnabled = false
        chart.dragEnabled = true
        chart.rightAxis.enabled = false
        chart.leftAxis.enabled = true
        chart.doubleTapToZoomEnabled = false
        chart.legend.enabled = false
        chart.pinchZoomEnabled = true
        chart.highlightPerTapEnabled = false
        chart.highlightPerDragEnabled = false

        chart.xAxis.enabled = false
        chart.leftAxis.drawAxisLineEnabled = false
        chart.leftAxis.drawGridLinesEnabled = false
        chart.leftAxis.labelCount = 5
        chart.leftAxis.forceLabelsEnabled = true
    }

    func setData(xAxisArray : [String], yAxisArray : [Double], chart : LineChartView)
    {
        var yVals1 : [ChartDataEntry] = [ChartDataEntry]()
        if(xAxisArray.count > 0)
        {
            for i in 0 ..< xAxisArray.count
            {
                let chartEntry = ChartDataEntry(x: Double(i), y: yAxisArray[i], data: nil)
                yVals1.append(chartEntry)
            }
        }
        let set1: LineChartDataSet = LineChartDataSet(values: yVals1, label: "")
        set1.fillColor = UIColor.red
        set1.drawFilledEnabled = true
        set1.drawCirclesEnabled = false

        let data = LineChartData()
        data.addDataSet(set1)

        liveChart.data = data
    }

有没有办法解决这个问题?或者这只是图表填充颜色的工作方式?

编辑:

我正在使用

https://github.com/danielgindi/Charts

1 个答案:

答案 0 :(得分:6)

我假设你使用这个库:https://github.com/kevinbrewster/SwiftCharts

因此LineChartView自动设置填充颜色的alpha:https://github.com/kevinbrewster/SwiftCharts/blob/master/SwiftCharts/LineChart.swift#L758

尝试设置数据集的fillAlpha属性

相关问题