SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, iOS Chart, Android Chart and JavaScript Chart Components
Using Following Code to Construct Sync Multiple Graphs
let _rangeSync = SCIAxisRangeSynchronization()
let _zoomExtentsModifierSync = SCIMultiSurfaceModifier(modifierType: SCIZoomExtentsModifier.self)
let _pinchZoomModifierSync = SCIMultiSurfaceModifier(modifierType: SCIPinchZoomModifier.self)
let _xDragModifierSync = SCIMultiSurfaceModifier(modifierType: SCIXAxisDragModifier.self)
let _yDragModifierSync = SCIMultiSurfaceModifier(modifierType: SCIYAxisDragModifier.self)
let _rolloverModifierSync = SCIMultiSurfaceModifier(modifierType: SCIRolloverModifier.self)
func getGraphs() -> [(String,CustomClassThatHoldsData)] {
let keys = Array(historicChats!.data!.keys)
var arrayOfTuples = [(String,CustomClassThatHoldsData)]()
//
for key in keys {
arrayOfTuples.append((key, (self.historicChats?.data![key])!))
}
return arrayOfTuples
}
func drawMultichartWithDefault() {
for data in arrayOfGraphs {
let chart = SCIChartSurface(frame: CGRect(x: 0, y: 0, width: self.stkCharts.frame.width-50, height: 200))
initChart(chart, data.1)
self.stkCharts.addArrangedSubview(chart)
}
}
fileprivate func initChart(_ chart: SCIChartSurface, _ data: VitalHistoryData) {
SCIUpdateSuspender.usingWithSuspendable(chart) {
let xAxis = SCIDateTimeAxis()
xAxis.growBy = SCIDoubleRange(min: SCIGeneric(0.1), max: SCIGeneric(0.1))
let yAxis = SCINumericAxis()
yAxis.growBy = SCIDoubleRange(min: SCIGeneric(0.1), max: SCIGeneric(0.1))
let dataSeries = SCIXyDataSeries(xType: .dateTime, yType: .double)
let dataArray = data.getDataArray()
for tuple in dataArray {
dataSeries.appendX(SCIGeneric(tuple.1), y: SCIGeneric((tuple.0)))
}
let rSeries = SCIFastLineRenderableSeries()
rSeries.dataSeries = dataSeries
rSeries.strokeStyle = SCISolidPenStyle(color: UIColor.green, withThickness: 1.0)
chart.xAxes.add(xAxis)
chart.yAxes.add(yAxis)
chart.renderableSeries.add(rSeries)
chart.chartModifiers = SCIChartModifierCollection(childModifiers: [self._xDragModifierSync, self._yDragModifierSync, self._pinchZoomModifierSync, self._zoomExtentsModifierSync, self._rolloverModifierSync])
self._rangeSync.attachAxis(xAxis)
}
}
On 2 graphs it works quite fine but with the more then 2 graphs it starts lagging
Hi Atiq,
Just an update for you. We’ve greatly improved performance in SciChart iOS v3 which is available ini BETA now.
You can get 3.x beta via the CocoaPods, as described here – https://www.scichart.com/documentation/ios/current/integrating-scichart-libraries.html#integrating-scichart-using-cocoapods.
Let us know, if you need any help with it if you decided to try it out.
Best Regards,
Nazar R.
SciChart Developer
Please login first to submit.