iOS图表(Daniel Gindi)-如何在Swift中设置双y轴双图形线
我正在使用。以下是我的单y轴单线图代码:当我尝试向y轴添加第二条线时,它抛出错误“无法将“LineChartDataSet”类型的值转换为预期的参数类型“String”iOS图表(Daniel Gindi)-如何在Swift中设置双y轴双图形线,ios,swift,charts,ios-charts,Ios,Swift,Charts,Ios Charts,我正在使用。以下是我的单y轴单线图代码:当我尝试向y轴添加第二条线时,它抛出错误“无法将“LineChartDataSet”类型的值转换为预期的参数类型“String” 导入UIKit 进口图表 类PulseController:UIViewController、ChartViewDelegate{ @IBVAR lineChartView:lineChartView! 重写func viewDidLoad(){ super.viewDidLoad() 月份=[“一月”、“二月”、“三月”、“四
导入UIKit
进口图表
类PulseController:UIViewController、ChartViewDelegate{
@IBVAR lineChartView:lineChartView!
重写func viewDidLoad(){
super.viewDidLoad()
月份=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”]
让unitsSold=[20.0,4.0,6.0,3.0,12.0,16.0]
设置图表(月,值:unitsSold)
}
func集合图表(数据点:[字符串],值:[双精度]){
变量数据项:[ChartDataEntry]=[]
对于0中的i..@IBOutlet var lineChartView:lineChartView!
重写func viewDidLoad(){
super.viewDidLoad()
月份=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”]
让unitsSold1=[20.0,4.0,6.0,3.0,12.0,16.0]
设unitsSold2=[200.0400.0600.0300.01220.0160.0]
设置图(月,值1:unitsSold1,值2:unitsSold2)
}
func集合图表(数据点:[字符串]、值1:[双精度]、值2:[双精度])
{
var dataEntries1:[ChartDataEntry]=[]
var dataEntries2:[ChartDataEntry]=[]
对于0..中的i,只需添加以下行:
lineChartView.rightAxis.enabled = false
lineChartView.xAxis.drawGridLinesEnabled = true
谢谢!但我已经尝试过使用这种代码,但它在“lineChartDataSets.append(lineChartDataSet1)”中引发错误-“无法将“LineChartDataSet”类型的值转换为预期的值类型“String”。请您在代码中添加此行以通知数据集。lineChartView.data notifyDataChanged()lineChartView notifyDataChanged()你也可以查看下面的URL,希望你能得到你的答案。谢谢@ashmi123,你的github链接…帮了我很多忙,事实上,我正试图在同一个图表上获得双图,如下所示
@IBOutlet var lineChartView: LineChartView!
override func viewDidLoad() {
super.viewDidLoad()
let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
let unitsSold1 = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0]
let unitsSold2 = [200.0, 400.0, 600.0, 300.0, 120.0, 160.0]
setChart(months, values1: unitsSold1,values2:unitsSold2)
}
func setChart(dataPoints: [String], values1: [Double],values2:[Double])
{
var dataEntries1: [ChartDataEntry] = []
var dataEntries2: [ChartDataEntry] = []
for i in 0..<dataPoints.count
{
let dataEntry1 = ChartDataEntry(value: values1[i], xIndex: i)
dataEntries1.append(dataEntry1)
let dataEntry2 = ChartDataEntry(value: values2[i], xIndex: i)
dataEntries2.append(dataEntry2)
}
let lineChartDataSet1 = LineChartDataSet(yVals: dataEntries1, label: "Pulse1")
let lineChartDataSet2 = LineChartDataSet(yVals: dataEntries2, label: "Pulse2")
var lineChartDataSets :[String]
lineChartDataSets.append(lineChartDataSet1)
lineChartDataSets.append(lineChartDataSet2)
let lineChartData = LineChartData(xVals: dataPoints, dataSet: lineChartDataSets)
lineChartView.data = lineChartData
lineChartView.animate(xAxisDuration: 2.0)
lineChartView.animate(yAxisDuration: 2.5)
lineChartDataSets.setCircleColor(UIColor.init(red: 14/255, green: 165/255, blue: 150/255, alpha: 1))
lineChartDataSets.setColor(UIColor.init(red: 14/255, green: 165/255, blue: 150/255, alpha: 1))
}
lineChartView.rightAxis.enabled = false
lineChartView.xAxis.drawGridLinesEnabled = true