首页 > 解决方案 > 在 Highchart iOS 中,同一 y 轴上的两个 SPLine 无法正确显示

问题描述

我正在研究多轴图表。我在相同的轴上添加了两条不同颜色的样条线,但线以相同的颜色显示并相互连接。看图片

在此处输入图像描述

我的代码是:

class ViewController: UIViewController {
    @IBOutlet var chartView: HIChartView!
    var xAxisData = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
    var spline1Data = [3, 4, 3, 5, 4, 10, 12]
    var spline2Data = [1, 3, 4, 3, 3, 5, 4]

    struct Area {
        static var isAreaOne = true
        static var isAreaTwo = true
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
     initChart()
    }

    func initChart() {
        let options = HIOptions()
        let chart = HIChart()
        chart.type = "areaspline"

        let title = HITitle()
        title.text = ""

        let xaxis = HIXAxis()
        xaxis.categories = xAxisData

        let yaxis = HIYAxis()
        yaxis.title = HITitle()
        yaxis.title.text = ""

        let tooltip = HITooltip()
        tooltip.shared = 1
        tooltip.valueSuffix = " units"

        let credits = HICredits()
        credits.enabled = 0

        let exporting = HIExporting()
        exporting.enabled = false

        let plotoptions = HIPlotOptions()
        plotoptions.areaspline = HIAreaspline()
        plotoptions.areaspline.fillOpacity = 0.5
        plotoptions.areaspline.dataLabels = HIDataLabels()
        plotoptions.areaspline.dataLabels.enabled = true

        let areaspline1 = HIAreaspline()
        areaspline1.name = "John"
        areaspline1.data = spline1Data

        let areaspline2 = HIAreaspline()
        areaspline2.name = "Jane"
        areaspline2.data = spline2Data

        options.chart = chart
        options.title = title
        options.xAxis = [xaxis]
        options.yAxis = [yaxis]
        options.tooltip = tooltip
        options.credits = credits
        options.exporting = exporting
        options.plotOptions = plotoptions
        if Area.isAreaOne && Area.isAreaTwo {
            options.series = [areaspline1, areaspline2]
        }else if Area.isAreaOne {
            options.series = [areaspline1]
        }else if Area.isAreaTwo {
            options.series = [areaspline2]
        }else {
            options.series = []
        }

        chartView.options = options
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func btnOneDidClicked(_ sender: UIButton) {
        Area.isAreaOne = !Area.isAreaOne
        initChart()
    }

    @IBAction func btn2DidClicked(_ sender: UIButton) {
        Area.isAreaTwo = !Area.isAreaTwo
        initChart()
    }
}

为什么这会发生在多轴图表上?请帮忙

标签: iosswifthighcharts

解决方案


推荐阅读