SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and now iOS Charting & Android Chart Components
Trying to install SciChart.iOS NuGet package for Xamarin.iOS project results the following error:
Package SciChart.iOS 188.8.131.527 is not compatible with xamarinios10 (Xamarin.iOS,Version=v1.0). Package SciChart.iOS 184.108.40.2067 supports: xamarinios (xamarin-ios,Version=v0.0)
Wondering what the heck is “xamarin-ios,Version=v0.0”? It must be xamarinios10. We’re considering to buy SciChart but right now our build server is stuck on this error. As a workaround, we raname xamarin-ios to xamarinios10 in the lib directory but this not an option for a cloud build server.
Please take look at:
So my question is
Is there a way to highlight a line of a gridlines to which the label belong? It can be a color changed or something similar that can be easily perceived by the user.
I’m very sad because of you.
On my chart i’m added SCIZoomPanModifier with clip mode SCIClipMode_ClipAtExtents. And it well worked before i have updated lib to ‘220.127.116.118’. Now it’s works the same way as SCIClipMode_StretchAtExtents. But i don’t want to zoom by scrolling at the edge of data.
Can you look at it and fix as soon as possible?
I am building an iOS framework that sits on top of SciChart for app developers within our company. I’d like to provide my own default SCIThemeColorProvider object for charts in my framework. Easiest way to do that is to include my own theme plist in my framework’s bundle, but I cannot currently do that (as of 18.104.22.1683) because the SCIThemeColorProvider initializer assumes it’s either in the “Charting.SciChart” bundle or the main bundle.
I’d like to propose modifying SCIThemeColorProvider to add another initializer that takes a bundle ID, like this:
/** * Creates theme provider based on specified style * * @param themeKey The key of style which should be used as base for this theme provider * * @param bundleIdentifier The identifier of the bundle containing the theme plist identified by * themeKey; if nil, the main bundle is used. */ - (nullable instancetype)initWithThemeKey:(nonnull NSString*)themeKey bundleIdentifier:(nullable NSString*)bundleIdentifier;
The existing -initWithThemeKey: initializer would call through to this initializer with a nil bundle ID.
I have attached a patch file with this proposed change. Could this be added to an upcoming build?
My x axis is SCICategoryDateTimeAxis and i’m want to draw grid line with custom period. Let’s say every four hours for data with a period of thirty minutes. What is the best way for that?
Can i redifined axis’s tickCoordinatesProvider?
Can you provide some example?
Or it only possible with axes annotations ?
Is there possibility to show CursorModifier by simply changing switch state?
According to custom tooltip behaviour it is possible for SCITooltipModifier. And it’s work at v 2.0.0.xxxx
So can you provide a code with redefinitions of private Api methods for this situation?
UDP: What is the best practice to customize tooltip’s data view?
On device, there is an unwanted border line on the SCIChartSurface. Please refer to the screenshot.
I tried removing this by setting the border width and setting it’s colour as white as below
self.surface.view.layer.borderColor = [[UIColor whiteColor]CGColor];
self.surface.view.layer.borderWidth = 2.0f;
However, this does not set the border of the SCIChartSurface.
How do I remove this unwanted border line?
Is it possible to use negative index for methods:
-(void) insertAt:(int)index X:(SCIGenericType)x Open:(SCIGenericType)open High:(SCIGenericType)high Low:(SCIGenericType)low Close:(SCIGenericType)close;
-(void) updateAt:(int)index Open:(SCIGenericType)open High:(SCIGenericType)high Low:(SCIGenericType)low Close:(SCIGenericType)close;
Can you give an answer?
What is the minimum required sdk version for SciChart v.2?
Such as i have some trouble with IOS 9. See attachment.
Same behavior at real devices.
Can you look at this?
I’m interesting in alignment for line at SCIAxisMarkerAnnotation. For example for top, middle and bottom position. Like at alignment_to_top.png. So is there some possibility for this?
UDP: Is there possibility to hide annotation from chart view?
Something like setHidden: for UIView.
I want to show two renderableSeries on one chart view. These series have common x-axis (SCICategoryDateTimeAxis) and separate y-axes(SCINumericAxis). Only one of y-axis is visible at chart view. Also the data series of visible renderable series updated by scrolling to left or to right. So for displaying on one view i’m using:
[y1Axis setGrowBy: [[SCIDoubleRange alloc] initWithMin:SCIGeneric(0.3) Max:SCIGeneric(0.07)]]; [y2Axis setGrowBy: [[SCIDoubleRange alloc] initWithMin:SCIGeneric(0.0) Max:SCIGeneric(5)]];
So it’s look good at start (Correct_zooming.png). But after some scrolling it decrease axis extents of invisible y-axis (decrease.png).
Or even breaks down (broken.png)
For test i’m using SCIFastOhlcRenderableSeries and SCIHorizontallyStackedColumnsCollection readerable series.
Data series for SCIHorizontallyStackedColumnsCollection is initializated like:
[volumeSerie1 updateAt:index Y:SCIGeneric(100000 / [multiplier doubleValue])]; [volumeSerie2 updateAt:index Y:SCIGeneric(500000 / [multiplier doubleValue])];
So can you look at it?
Or what way i should implement this behavior?
My axis is SCICategoryDateTimeAxis type. And using SCIZoomPanModifier (SCIClipMode_ClipAtExtents) to scroll chart
I’m using setVisibleRangeLimit: method to clip the axis during ZoomExtents
Until v. 22.214.171.1241 it’s work like a charm. But now something had have broken. And it’s doesn’t allow me to scroll chart at right way. It show me all of the data range on chart or only left side.
So can you fix it?
Is Stacked Columns support autoRange by visible range?
I’m interesting in because sometimes my data looks like at the screenshot “huge_data.png”
And even when i have scrolled outside this data it’s looks like at the screenshot “scrolled_outside.png”
My X axis is SCICategoryDateTimeAxis type.
And i have a huge amount of data to display. So i need to display it by scrolling of the chart surface.
So what is the best practice to update data series on the fly and display it at the chart surface?
I have some data series like:
[[SCIXyDataSeries alloc] initWithXType:SCIDataType_DateTime YType:SCIDataType_Double SeriesType:SCITypeOfDataSeries_XCategory];
Also my Y axis is kind of class SCINumericAxis
So my question is
if i’m trying add value to the series
[volumeSerie appendX:SCIGeneric(bar.time) Y:SCIGeneric([bar.volume doubleValue])];
and my bar.volume is bigger than 2 147 483 648 (float limit as i’m know). It’s leads to a axis range crash. Like on the attached image.
So what should i use to handle huge values?
Like a billions and more
My x axis is SCICategoryDateTimeAxis class type. And it’s limited by VisiableRangeLimit like:
[xAxis setVisibleRangeLimit:[[SCIDoubleRange alloc] initWithMin:SCIGeneric(firstItem – (lastItem – priorItem))
Max:SCIGeneric(lastItem + (lastItem – priorItem))]];
Also for scrolling my content inside chart:
SCIZoomPanModifier * zpm = [[SCIZoomPanModifier alloc] init]; [zpm setModifierName:@"PanZoom Modifier"]; [zpm setClipModeX:SCIZoomPanClipMode_ClipAtExtents];
Like a description SCIZoomPanClipMode_ClipAtExtents says:
“forces the panning operation to stop suddenly at the extents of the data” – but it’s not working constantly.
Sometimes it’s allow to scroll outside the range. Like on the attached image.
So my question is how to limit scrolling by min and max value?
It’s has been asked here:
So, Is it possible to draw dashed line annotation at the current version 126.96.36.1992?
I’m working with SCIDateTimeAxis type of the X-axis. So my question Is there possibility of skipping non-value period?
it seems that i had found a mistake:
At SCICursorModifierStyle class if i try to set up axisVerticalTooltipCornerRadius property it lead to changing of axisHorizontalTooltipCornerRadius
Please take a look
I’m trying to limit the x-axis panning up to an annotation that I’ve drawn on the graph. This annotation can be beyond the current data’s position (i.e. data’s timestamp is at 5/4/2017 11:00:00, annotation’s position is at 5/4/2017 16:00:00). Is there a method, or any way that I can use to limit the x-axis panning up to the annotation’s position instead of limiting it to the data series’ max X?
Please take a look at the attached screenshot first.
I have a chart configured to draw some data. I need to draw SCIAxisMarkerAnnotation on Y axis. And it seems that annotation has alignment by right side of axis area. Is there a possibility to change it to left side of axis area?
I’ve been looking through ways to have to y-Axis scale for really small changes/values.
For example, I’m attempting to plot 10 values between 0.99300 to 0.99400, and the changes between points can vary between 0.001 to 0.0001 or so (basically, really small changes)
However, my y-Axis seems to always start at 0 and the y-Axis major ticks are always at most a 0.1 difference, making the graph look flat.
I’d like to achieve the following:
– Scale to the smallest value i can scale to.
– Have my y-Axis to not necessarily start at 0.
I’ve tried the following:
Setting up y-Axis:
self.yAxis = [SCINumericAxis new]; [self.yAxis setStyle:axisStyle]; self.yAxis.axisId = @"yAxis"; [self.yAxis setGrowBy:[[SCIDoubleRange alloc]initWithMin:SCIGeneric(0) Max:SCIGeneric(0.1)]]; [self.yAxis setAutoRange:SCIAutoRange_Always]; [self.chartSurface attachAxis:self.yAxis IsXAxis:NO];
I’m attempting to plot on a mountain graph with a DateTimeAxis for the x-axis and I noticed that the plotted time is inaccurate.
The data that am attempting to put in has the following NSDate value: 2017-01-06T10:09:25+0000
Correct me if am wrong, but I believe the time on the axis that ought to be displayed should follow the device’s system timezone? In my case, it is +0800, setting the time to be about 6:09:25 pm
However, the plotted time ends up showing the point to be plotted at 2:09:25 instead.
I’ve tested with a date formatter and it displays the time as it should (6:09:25 pm).
I don’t think I configured anything regarding the axis’s time format, and the insertion of data was done as below:
[self.mountainSeries appendX:SCIGeneric(m.timestamp) Y:SCIGeneric(m.mid)]; [self.chartSurface invalidateElement];
Also, to add on, if I were to extract the XMax value from the axis (in this case, is the timestamp as above), it returns me as such: 2017-01-06 18:09:25 +0000
I’ve encountered an issue with the candlestick graph I’ve drawn that consists of a set of random X date time values – this causes the candlesticks have varying distances from one another.
Rendering the data from an initial set seems to be fine but as I run a NSTimer to add on more points, the body of the new candlesticks seem to be 0. (Note, the date time values are still random but have been made to be set after the last placed point)
In fact, the initial data points that I added see to be rendered ‘body-less’ if it’s within the same visible range as the newly added points. And if I pan along the newly added points, the bodies of some data points will appear at random visible ranges.
Is this a normal behaviour or should I take anything else into consideration?
Here are a couple of my configurations which I think may have affected anything:
1. My XAxis has set its visible range limit mode to ClipMode_Min
2. Candlestick series style data body width is set to be default.
3. I have a the following modifiers set up.
self.xDragModifier = [SCIXAxisDragModifier new]; self.xDragModifier.axisId = @"xAxis"; self.xDragModifier.dragMode = SCIAxisDragMode_Pan; self.xDragModifier.clipModeX = SCIZoomPanClipMode_ClipAtMin; [self.xDragModifier setModifierName:@"XAxis DragModifier"]; self.pinchZoomModifier = [[SCIPinchZoomModifier alloc] init]; [self.pinchZoomModifier setModifierName:@"PinchZoom Modifier"]; self.pinchZoomModifier.xyDirection = SCIXYDirection_XDirection; self.zoomPanModifier = [SCIZoomPanModifier new]; self.zoomPanModifier.clipModeX = SCIZoomPanClipMode_ClipAtMin; self.zoomPanModifier.xyDirection = SCIXYDirection_XDirection; [self.zoomPanModifier setModifierName:@"ZoomPan Modifier"]; SCIModifierGroup * gm = [[SCIModifierGroup alloc] initWithChildModifiers:@[self.xDragModifier, self.pinchZoomModifier, self.zoomPanModifier]]; self.chartSurface.chartModifier = gm;
The points are drawing just fine, but the body of the candlestick is not appearing as expected.
Thanks in advance.
I’ve got error message during compilation:
ld: bitcode bundle could not be generated because '.../Frameworks/SciChart.framework/SciChart' was built without full bitcode. All frameworks and dylibs for bitcode must be generated from Xcode Archive or Install build for architecture armv7
I temporary disabled bitcode for target. Will you fix it in the next build?
From your documentation:
SciChart features a rich Annotations API, that allows you to place UIKit UIElements over the chart.
SciChat provides a number of built-in annotations, but you can also create your own.
SCIBoxAnnotation, SCILineAnnotation and SCITextAnnotation are cool, but sometimes it’s not enough.
Is it possible to render UIView on the chart (at least UIImage)?
Is it possible to draw dashed line annotation?
Could you provide an example of creating custom annotation class?
Please take a look at the attached screenshot first.
I have a chart configured to draw real-time trading data. X axis type is DateTime. Y axis type is Float. I need to draw vertical expiration time line.
I tried to draw coordinate relative line annotation as follows:
var date: NSDate = NSDate() let lineAnnotation = SCILineAnnotation() lineAnnotation.xAxisId = self.axisXId lineAnnotation.yAxisId = self.axisYId lineAnnotation.coordMode = .SCIAnnotationCoord_RelativeX lineAnnotation.style.linePen = SCIPenSolid(color: Style.Chart.ExpirationDateLine.Color, width: Style.Chart.ExpirationDateLine.Width lineAnnotation.xStart = SCI_constructGenericTypeWithInfo(&date, .DateTime) lineAnnotation.xEnd = SCI_constructGenericTypeWithInfo(&date, .DateT self.chartSurface.annotation = lineAnnotation self.chartSurface.invalidateElement()
I tried to play with different coordMode values. Line does not appear. Could you help me with this task?