How do I implement dynamic data to my CorePlot? I'd like my graph to look like this:
How should I implement my JSON API and to decode the values to set it as X-axis?
JSON API: https://dcmicrogridiep.000webhostapp.com/datamainjson.php
This is my sample code for the CorePlot graph which uses hard coded values.
import Foundation
import SwiftUI
import CorePlot
class CalculatePlotData: ObservableObject {
var plotDataModel: PlotDataClass? = nil
func plotYEqualsX()
{
//set the Plot Parameters
plotDataModel!.changingPlotParameters.yMax = 10.0
plotDataModel!.changingPlotParameters.yMin = -5.0
plotDataModel!.changingPlotParameters.xMax = 10.0
plotDataModel!.changingPlotParameters.xMin = -5.0
plotDataModel!.changingPlotParameters.xLabel = "x"
plotDataModel!.changingPlotParameters.yLabel = "y"
plotDataModel!.changingPlotParameters.lineColor = .red()
plotDataModel!.changingPlotParameters.title = " y = x"
plotDataModel!.zeroData()
var plotData :[plotDataType] = []
for i in 0 ..< 120 {
//create x values here
let x = -2.0 + Double(i) * 0.2
//create y values here
let y = x * 8
let dataPoint: plotDataType = [.X: x, .Y: y]
plotData.append(contentsOf: [dataPoint])
}
plotDataModel!.appendData(dataPoint: plotData)
}
func ploteToTheMinusX()
{
//set the Plot Parameters
plotDataModel!.changingPlotParameters.yMax = 10
plotDataModel!.changingPlotParameters.yMin = -3.0
plotDataModel!.changingPlotParameters.xMax = 10.0
plotDataModel!.changingPlotParameters.xMin = -3.0
plotDataModel!.changingPlotParameters.xLabel = "x"
plotDataModel!.changingPlotParameters.yLabel = "y = exp(-x)"
plotDataModel!.changingPlotParameters.lineColor = .blue()
plotDataModel!.changingPlotParameters.title = "exp(-x)"
plotDataModel!.zeroData()
var plotData :[plotDataType] = []
for i in 0 ..< 60 {
//create x values here
let x = -8.0 + Double(i) * 5
//create y values here
let y = exp(-x)
let dataPoint: plotDataType = [.X: x, .Y: y]
plotData.append(contentsOf: [dataPoint])
}
plotDataModel!.appendData(dataPoint: plotData)
return
}
}

If you don't need the actual date values elsewhere in the app, you can just send the numbers in the "times" field provided by the API to the plot directly. You'll set the plot ranges based on those values and define a label formatter with the correct reference date to properly display the date values. Look at the DatePlot example app for a simple Swift example.