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

标签 ios charts swift3 ios-charts

我是编程新手,速度很快,我正在尝试制作一个包含 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!"
}

但看起来像这样:Graph

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

enter image description here

感谢您的建议

最佳答案

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

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!"

}

希望这有帮助!

关于ios - 如何用字符串绘制 2 个带 x 轴的折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40383318/

相关文章:

swift - Playground ,无法将相同的 UIImageView 设置为多个 UIView

iOS: subview Controller 和自动布局

PHP-如何从数据库中按最高到最低顺序获取前十条记录

vb.net - 柱形图 - 设置 X 轴的字符串标签

javascript - 否则如果方法执行失败怎么办?

ios - 如何使用 SWIFT 显示多文档 PDF 页面的单页

swift - 使用 OCR 显示事件指示器并使用线程

ios - 用地面纹理节点填充屏幕

ios - UITextVIew 在打字时没有向上移动

ios - 无法在 Xcode 8.3.3 中解锁文件 “project.pbxproj”