如何使用带字符串的 x 轴绘制 2 个折线图

How to draw 2 LineCharts with xAxis with Strings

我是编程新手,swift我正在尝试制作一个包含 2 条线的图表。在图表顶部枚举我拥有的字符串数组(在我的例子中是 DD-MM)。我设法像这样只画了一条线:

 let testArrayTemp = [22.43, 14.86,20.63, 17.08,23.68,14.12,11.09,13.89, 15.0, 9.86, 7.71,10.0,11.94, 8.68, 8.91,6.81, 9.03,8.89, 9.7, 9.26, 9.43,10.22, 9.04,8.04, 7.56,10.44, 7.22, 13.67,9.44, 7.67, 5.99]
     let testArrayFeel = [20.43, 13.86,10.63, 15.08,22.68,11.12,10.09,15.89, 13.0, 6.86, 5.71,11.0,10.94, 7.68, 6.91,5.81, 3.03,5.89, 7.7, 8.26, 8.43, 11.22, 6.04,7.04, 6.56,11.44, 6.22, 12.67,10.44, 5.67, 4.99]
    let testDayArray = ["Oct 2, 2016", "Oct 3, 2016", "Oct 4, 2016", "Oct 5, 2016", "Oct 6, 2016", "Oct 7, 2016", "Oct 8, 2016", "Oct 9, 2016", "Oct 10, 2016", "Oct 11, 2016", "Oct 12, 2016", "Oct 13, 2016", "Oct 14, 2016", "Oct 15, 2016", "Oct 16, 2016", "Oct 17, 2016", "Oct 18, 2016", "Oct 19, 2016", "Oct 20, 2016", "Oct 21, 2016", "Oct 22, 2016", "Oct 23, 2016", "Oct 24, 2016", "Oct 25, 2016", "Oct 26, 2016", "Oct 27, 2016", "Oct 28, 2016", "Oct 29, 2016", "Oct 30, 2016", "Oct 31, 2016", "Nov 1, 2016"]
    setChart(dataPoints: testDayArray, valuesTempChart: testArrayTemp, valuesFeelChart: testArrayFeel)
}

//MARK:- Set Chart
func setChart(dataPoints: [String], valuesTempChart: [Double], valuesFeelChart: [Double])
{
    var tempEntries: [ChartDataEntry] = []

    for i in 0..<dataPoints.count
    {
        let dataEntry = ChartDataEntry(x: Double(i), y: valuesTempChart[i])
        tempEntries.append(dataEntry)
    }

    let lineChartDataSetTemp = LineChartDataSet(values: tempEntries, label: "Temperature")
    lineChartDataSetTemp.setColor(UIColor.red)
   // lineChartDataSetTemp.mode = .cubicBezier
    lineChartDataSetTemp.drawCirclesEnabled = true
    lineChartDataSetTemp.lineWidth = 2.0
    lineChartDataSetTemp.circleRadius = 5.0
    lineChartDataSetTemp.highlightColor = UIColor.green
    lineChartDataSetTemp.drawHorizontalHighlightIndicatorEnabled = true

    var dataSets = [IChartDataSet]()
    dataSets.append(lineChartDataSetTemp)
    let lineChartDataTemp = LineChartData(dataSets: dataSets)
    lineChart.data = lineChartDataTemp
    lineChart.animate(xAxisDuration: 2.0, yAxisDuration: 2.0)

    lineChart.noDataText = "There is no provided data from the server. Please check out later!"
}

但它看起来像这样:

我需要做什么才能在顶部显示字符串数组(带有天数)并再添加一行。请任何想法,或者 link 到 SWIFT 3 中的教程而不是其他版本,因为他们做了很多更改,并且 swift 2 教程中的任何内容都无法正常工作,但是自动更正效果更差。 我希望它看起来像这样:(但有 2 行和天而不是月)

感谢您的任何建议

您需要做的是对感觉数据重复该过程。参考下面的代码。

func setChart(dataPoints: [String], valuesTempChart: [Double],valuesFeelChart: [Double])
{
var tempEntries: [ChartDataEntry] = []
var feelEntries: [ChartDataEntry] = []

for i in 0..<dataPoints.count
{
    let dataEntryOne = ChartDataEntry(x: Double(i), y: valuesTempChart[i])
    let dataEntryTwo = ChartDataEntry(x: Double(i), y: valuesFeelChart[i])
    tempEntries.append(dataEntryOne)
    feelEntries.append(dataEntryTwo)
}

let lineChartDataSetTemp = LineChartDataSet(values: tempEntries, label: "Temperature")
let lineChartDataSetFeels = LineChartDataSet(values: feelEntries, label: "Feels")

var dataSets = [IChartDataSet]()
dataSets.append(lineChartDataSetTemp)
dataSets.append(lineChartDataSetFeels)
let lineChartD = LineChartData(dataSets: dataSets)
lineChart.data = lineChartD
lineChart.animate(xAxisDuration: 2.0, yAxisDuration: 2.0)

lineChart.noDataText = "There is no provided data from the server. Please check out later!"

}

希望对您有所帮助!