SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and iOS Chart & Android Chart Components

0 votes
0 answers
36 views

Hi,

I was using android sdk 2.5 and i’m not getting any runtime errors and error logs. But after updating the project to sdk 3.0 i started getting errors (no code has been changed). During the runtime, chart’s xAxis shows wrong times and started writing 1970 under every vertical grid line. Also debug log says: “SciChartSurface has no XAxes. Please ensure SciChartSurface.XAxis is set, or SciChartSurface.XAxes has at least one axis”.

I’m just upgrade sdk 2.5 to 3.0, how can i fix errors?

Tnx.

0 votes
0 answers
46 views

I create a real time chart and want to add line annotation which help to user to understand chart wave form.
However I can’t add fix position of annotation. I change annotation every time chart is update but the annotation is not fixed in one position. The x value is datetime axis and the visible range is 5 second. Data is added around 100 data per second.

0 votes
63 views

SciChart Android
I only want to draw line chart which update real time. So, I don’t want label and grid. I remove the label and grid via scichart builder options but the chart remain little spacing for label. How to remove these spacing.
Android Version – 7.0
SciChart Version – 2.5.0.2610

My Code –

XAxis = sciChartBuilder.newDateAxis()
                .withDrawLabels(false)
                .withDrawMajorGridLines(false)
                .withDrawMajorBands(false)
                .withDrawMinorGridLines(false)
                .withVisibleRange(current, graphEnd)
                .withAutoRangeMode(AutoRange.Never)
                .build();


    YAxis = sciChartBuilder.newNumericAxis()
            .withDrawLabels(false)
            .withDrawMajorGridLines(false)
            .withDrawMajorBands(false)
            .withDrawMinorGridLines(false)
            .withVisibleRange(-MaxY , MaxY)
            .withAutoRangeMode(AutoRange.Never)
            .build();

    ModifierGroup chartModifiers = sciChartBuilder.newModifierGroup()
            .withZoomPanModifier().withXyDirection(Direction2D.XDirection).withZoomExtentsY(false).build()
            .build();
0 votes
62 views

Hi,
I want to know how to set FastBandRenderableSeries withSeriesInfoProvider to null?

If i set null like sciChartBuilder.newBandSeries().withSeriesInfoProvider(null) i’m getting error on debug logs:

E/Exception: null
java.lang.NullPointerException: Attempt to invoke interface method ‘com.scichart.charting.visuals.renderableSeries.tooltips.ISeriesTooltip com.scichart.charting.visuals.renderableSeries.hitTest.ISeriesInfoProvider.getSeriesTooltip(java.lang.Class)’ on a null object reference
at com.scichart.charting.modifiers.behaviors.TooltipBehaviorBase.func(SourceFile:120)
at com.scichart.charting.modifiers.behaviors.TooltipBehaviorBase.func(SourceFile:35)
at com.scichart.core.utility.ListUtil.select(SourceFile:249)
at com.scichart.core.observable.ProjectionCollection.onCollectionChanged(SourceFile:186)
at com.scichart.core.observable.ObservableCollection.a(SourceFile:302)
at com.scichart.core.observable.ObservableCollection.a(SourceFile:79)
at com.scichart.core.observable.ObservableCollection.add(SourceFile:93)
at java.util.Collections.addAll(Collections.java:5447)
at com.ikon.prodigy.Fragments.FragmentUI.SciChartFragmentUI$1$3.run(SciChartFragmentUI.java:1057)
at com.scichart.core.framework.UpdateSuspender.using(SourceFile:122)
at com.ikon.prodigy.Fragments.FragmentUI.SciChartFragmentUI$1.run(SciChartFragmentUI.java:1013)
at android.os.Handler.handleCallback(Handler.java:793)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6698)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)

0 votes
71 views

Hi,

I want to select the high value of the point that appears when I move my finger while holding the screen on the candlestick chart. I wrote the Custom RolloverModifier but the result has not changed. How can i change the default point position?

public class CustomRolloverModifier extends RolloverModifier
{
private final HitTestInfo hitTestInfo = new HitTestInfo();

SciChartFragmentUI sciChartFragmentUI;

public CustomRolloverModifier(SciChartFragmentUI sciChartFragmentUI)
{
    this.sciChartFragmentUI = sciChartFragmentUI;
}

@Override
protected void updateCurrentPoint(PointF currentPoint, ModifierTouchEventArgs args)
{
    try
    {
        getParentSurface().getRenderableSeries().get(0).hitTest(hitTestInfo, currentPoint.x, currentPoint.y, 0);

        double data = sciChartFragmentUI.ohlcDataSeries.getHighValues().get(hitTestInfo.dataSeriesIndex);

        ICoordinateCalculator coordCalc = sciChartFragmentUI.yAxis.getCurrentCoordinateCalculator();
        currentPoint.y = coordCalc.getCoordinate(data);

        super.updateCurrentPoint(currentPoint, args);
    }
    catch (Exception ex)
    {
        Log.e("updateCurrentPoint: ", ex.getMessage());
    }
}

}

Tnx

0 votes
103 views

Hi;

When I open Scichart for the first time, the chart view looks black until it is displayed by drawing the chart.
Is it possible to make the background in a different color until the chart is displayed?

Tnx.

0 votes
0 answers
106 views

Hello, we are trying to add HotizontalLineAnnotations to our candlestick chart on tap. But we’ve got the following error :

mView does not exist, so discard the remaining points. java.lang.NullPointerException: Attempt to invoke interface method ‘java.lang.Comparable com.scichart.charting.visuals.axes.IAxis.getDataValue(float)’ on a null object reference

I’ve tried to set axisIds for annotations, but it seems that it doesn’t help. Could you please help me with this issue?

 val annotationCreationModifier = AnnotationCreationModifier()
    val annotationFactory = DefaultAnnotationFactory()

    annotationCreationModifier.annotationType = 6 // Horizontal Line
    annotationCreationModifier.annotationFactory = annotationFactory
    annotationCreationModifier.setAnnotationCreationListener {
        it.setIsEditable(true)
    }

    candleChartSurface.chartModifiers.add(sciChartBuilder
            .newModifierGroup()
            .withModifier(annotationCreationModifier)
            .build()
    )
1 vote
0 answers
104 views

I’ve set the width value to matchParent. How do I remove this unwanted space on the right side of the chart?

1 vote
223 views

Hi, I’m using the trial version for Xamarin. We wish to develop a mobile app which will have charting capabilities similar to our existing desktop application. I’ll provide an example of what we do (3 screenshots attached), can you please tell me if SciChart can do the same?

In #1 you see an FFT chart.
We select a data point by touching the screen.
In #2 you see a vertical blue line over the selected data point, plus 5 equidistant markers to the right.
We click a button to move right.
In #3 you see the 5 markers have moved to the right, the distance between them has increased slightly.

Is this something that SciChart can handle? Easily? With difficulty?
We want to write all the code in the common Xamarin project only (i.e. no iOS or Android specific code).

Thanks very much,
Wayne

1 vote
0 answers
184 views

Hi
I have a chart from a sound.
In xiaomi phones when resume chart after pause it, my line chart faces the severe lag.
In other phones my chart work well.
what should I do?
phone is (Xiaomi mi a3)

private void resume() {

    forceRunInPauseMode = true;
    mediaPlayer.seekTo(currentTime);
    mediaPlayer.start();
    completedState = false;
    pauseState = false;
    updateChart();
}



private void updateChart() {
    schedule = scheduledExecutorService.scheduleWithFixedDelay(() -> {
        if (mediaPlayer.isPlaying() || forceRunInPauseMode){
            UpdateSuspender.using(binding.sciChart, mRunnable);
        }
    }, 0, TIME_INTERVAL, TimeUnit.MILLISECONDS);

}

private Runnable mRunnable = new Runnable() {
    @Override
    public void run() {
        forceRunInPauseMode = false;


        currentTime = mediaPlayer.getCurrentPosition();
        currentRange = currentTime * 2;
        getActivity().runOnUiThread(()->binding.tvCurrentDuration.setText(MiliToTimeConverter.milliToTime(currentTime)));

        if (currentRange < 0)
            currentRange = 0;
        else if (currentRange > xDoubleArray.length - 1)
            currentRange = xDoubleArray.length - 1;

        if (!drawed) {
            DoubleValues xValues = new DoubleValues(Arrays.copyOfRange(xDoubleArray, 0, xDoubleArray.length-1));
            DoubleValues yValues = new DoubleValues(Arrays.copyOfRange(yDoubleArray, 0, yDoubleArray.length-1));
            DoubleSeries doubleSeries = new DoubleSeries(xValues, yValues);
            lineData.append(doubleSeries.getxValues(), doubleSeries.getyValues());
            drawed = true;
        }
        xVisibleRange.setMinMax((double) (currentRange - visibleInterval / 2), (double) (currentRange + visibleInterval / 2));
    }
};
0 votes
195 views

This might be a stupid question. 😀 But I tried several things and nothing seems to work…

I have a chart that has several different datasets that can be switched to. When I apply them and do zoom to extents it changes the Y Axis sometimes 1-15, sometimes 1-20, sometimes 1-25. So the chart zooms in/out, which looks nice.

However I would like to fix the initial zoom to be always be 1-20. If the chart is smaller or bigger than 20; that is fine; I just want the initial viewport to always zoom to be 1-20, when I switch the dataset. They can then zoom in/out or pan using gestures.

Any ideas on what API I need to call to zoom the chart to 1-20. (Please note, this is using a logarithmic scale on the Y-Axis — if it makes any differences).

So what do I need to call/set rather than calling the zoom to extents function.

0 votes
202 views

Hi,

I have a fast column renderable series where a column is added each hour. When the first column is added, it renders approximately half the graph (regardless of zoom), which is unintended. Once the data point for the second hour is added, the column collapses down to the space of the hour (as we would want). Why is the first column rendering too wide? Am I failing to set a parameter that is required?

Below is my series setup:

 val uoColumnSeries =
        generateColumnRenderableSeries(LABEL_ID_UO, uoColumnDataSeries, SolidBrushStyle(uoColumnColor))
    uoColumnSeries.dataPointWidth = .95
    uoRenderableSeries.add(uoColumnSeries)

Attached is how the data renders with 1 point (zoomed in and out), and data render once second point (of height 0) is added. The graph in question is the column graph at the top in yellow.

Thanks,
-Andy

0 votes
209 views

This is stackTrace:
E/Axis: VisibleRange was restored to its last valid value. The range class com.scichart.data.model.DoubleRange (Min = 27748.0, Max = 32248.0) either is not valid or it doesn’t satisfy MinimalZoomConstrain or MaximumZoomConstrain. To provide fallback value please override AxisCore#coerceVisibleRange(IRange) method

0 votes
156 views

Hi
I have a fifo scrolling chart
When I set the axis visibleRangeListener, the chart performance goes down and it gets an exception.
what is the solution?

0 votes
208 views

I want to put a vertical line in the middle of the surface and chart.
this line is fixed .

0 votes
216 views

Hi,

How can i get to first and last items indexes on visible range when onVisibleRangeChanged triggered?

Tnx.

0 votes
0 answers
203 views

As of now ,when i tried to build line chart using realtime data ,by default i m getting square wave form but i want like linear gradient close to look like ventilator graph.

if any one have implemented that before then please help as i m new to this library.

-2 votes
0 answers
222 views

As of now ,when i tried to build line chart using realtime data ,by default i m getting square wave form but i want like linear gradient close to look like ventilator graph.

if any one have implemented that before then please help as i m new to this library.

0 votes
240 views

NativeScript tends to replace fragments rather than destroy the entire activity; so everything lives in a single activity. Unfortunately; when navigating pages the fragment might not be fully detached while the other one is being added (for animation purposes) and it throws this error:

Stacktrace
System.err: Attempt to invoke virtual method ‘void com.scichart.drawing.opengl.ao.a(int, int)’ on a null object reference
System.err:
System.err: StackTrace:
System.err: java.lang.NullPointerException: Attempt to invoke virtual method ‘void com.scichart.drawing.opengl.ao.a(int, int)’ on a null object reference
System.err: at com.scichart.drawing.opengl.aa.doFrame(SourceFile:88)
System.err: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:909)
System.err: at android.view.Choreographer.doCallbacks(Choreographer.java:723)
System.err: at android.view.Choreographer.doFrame(Choreographer.java:655)
System.err: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
System.err: at android.os.Handler.handleCallback(Handler.java:790)
System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
System.err: at android.os.Looper.loop(Looper.java:164)
System.err: at android.app.ActivityThread.main(ActivityThread.java:6494)
System.err: at java.lang.reflect.Method.invoke(Native Method)
System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

I have tried using suspendUpdates on the surface to stop any updates; and finally went to where I have to manually remove it from the viewport before destruction occurs.

Is their any way to potentially catch this error and ignore it. It only happens during a destruction sequence that the SciChart doesn’t like. Or is their some way to stop all drawing so that it isn’t trying to call whatever is in SourceFile line 88

Also is their a better place to report stack traces for crashes?

0 votes
245 views

I have a chart that does not perform well and has a lag.
what I can do to fix this problem?

0 votes
251 views

I want to set ticks of y Axis, like 0, 10, 20, 30, 40, 50…

I tried in this code,
IAxis yAxis = sciChartBuilder.newNumericAxis().withVisibleRange(0, 50).withVisibleRangeLimit(0, 50).withMajorDelta(10d).build();

It did not work!

How can I change the interval in Axis?

0 votes
230 views

Hi
I want set gridlines ratio to square not rectangle, like this picture.

0 votes
264 views

See the Attached image — On the right side in addition to the labels 0.01% – 20.0%; Their is a color coded chart of AAA through C/D.

I need this to also be part of the chart; or maybe a separate control that can be transformed and zoomed based on where the chart is at.

If I’m zoomed in on the 0.15% – 0.50% then the B/BB/BBB should also be zoomed in to match the current scale of the chart.

Ideas on how to handle this. I’ve tagged this question as Android, but I will also need a solution for iOS.

0 votes
247 views

This is what I want it to look like: (see 1.jpg)

This is what (see 2.jpg) it does look like if I leave setIsLabelCullingEnabled enabled (all labels are culled except if I zoom WAY in)
This is what (see 3.jpg) it does look like if I turn off setIsLabelCullingEnabled

I would expect #2 to look like #3 without either one of the 20/15% and either 1% or 1.25% culled, when culling is enabled.

First things the specific values/locations are precise, I need those lines and labels exactly where they are. So I had to create my own LogarithmicNumericTickProvider and feed it all the numbers; this worked great and the numbers are where they need to be — but apparently using our own LogarithmicNumericTickProvider totally breaks culling. Any ideas on how we can get culling to work with our own LogarithmicNumericTickProvider. Is their another way to do this without using our own LogarithmicNumericTickProvider.

0 votes
217 views

I want a chart to keep the grid lines constant and fix and grid lines doesn’t attached to chart

0 votes
241 views

When I double-click the screen, the entire data is zoomed out and displayed.
How can I disable this double-click?

0 votes
224 views

I have a real-time chart that already drawn.
Is there a method that scrolls programmatically ?
If there is no such method, how i can do this ?

0 votes
278 views

Hi,

I’m using RolloverModifier and i want to show only point marker. I don’t want to show tooltip or any info on series. Is it possible?

Tnx.

1 vote
281 views

Hello,

I am trying to add series to a linechart, however I seem to be unable to create a XyDataSeries in Kotlin I have tried the following:

private val linedata = XyDataSeries<Double, Double>().apply { fifoCapacity = FIFO_CAPACITY } 

// like from the ECG showcase example, this gives the error 
// "none of the functions can be called with the arguments called"

private val linedata2 : IXyDataSeries<Double, Double> =  XyDataSeries(Double.class, Double.class)

private var linedata3 : XyDataSeries<Double, Double> = XyDataSeries(Integer.class, Double.class).build()

This seems quite straightforward but I am unable to find a solution. Can you help me?

Kind regards,
Bart

0 votes
276 views

I want to show my values between (-10,60) but the y axis is adjusting automatically according to data .

0 votes
339 views

I am trying to make a custom Label Provider by extending NumericLabelProvider as it is described here:
https://www.scichart.com/documentation/android/current/webframe.html#Axis%20Labels%20-%20LabelProvider%20API.html

private class PercentLabelProvider : NumericLabelProvider
{
    public override string FormatLabel(Java.Lang.IComparable dataValue)
    {
        return string.Format("{0:P0}", dataValue);
    }
}

However, this is not possible, because FormatLabel can not be overridden.
This is the error message:
“cannot override inherited member ‘FormatterLabelProviderBase.FormatLabel(IComparable)’ because it is not marked virtual, abstract, or override”

DateLabelProvider has the same problem.

I need need to use both.

Is there a solution for this issue?

  • Wil O asked 3 months ago
  • last active 2 months ago
0 votes
304 views

On Android, the docs say that AnnotationSurfaceEnum should have the “BelowChart” enum case, but it is actually missing in the code. It is there on iOS but not on Android.

I need this particular enum case, because otherwise the annotation boxes are hiding the data series and the grid lines.

What should I do?

  • Wil O asked 3 months ago
  • last active 3 months ago
0 votes
295 views

Hi, I want to draw a chart like the attached image.

This is a chart with XyDataSeries, it show as vertical line at each data point and verticle line is a dotted line in order to separated from other series.
Since the OHLC chart will have the open, close on the data point and an impulse chart is forced to draw from an axis, is there any better way that can achieve a series like this? Thank you!

  • may lym asked 3 months ago
  • last active 3 months ago
0 votes
355 views

Hi,

I’m trying to use Android’s Magnifier widget on scichart surface but only annotations or crosshairs lines shows and magnify.
Chart series (line, candle etc.) not showing on magnifier window. Is it possible to show all chart surface with series?

Tnx.

0 votes
371 views

Hi,

I’m using RubberBandXyZoomModifier for zooming and i want to reverse the process.
If i double tap to screen, i want the process to be reversed and back to last zooming level.
Firstly how can I dedect the double tap, and secondly how can I reverse the process?

Tnx.

0 votes
346 views

I set a rolloverModifier to a CandlestickSeries, but I can not find a API to hide RolloverMarker,I only find a article about WPF(https://www.scichart.com/documentation/v5.x/webframe.html#RolloverModifier.html), how could I hide RolloverMarker or change the style of RolloverMarker in Android?

enter image description here

  • jiahao li asked 3 months ago
  • last active 3 months ago
0 votes
364 views

Hi,

I’m working on a chart of money markets. I need yAxis with an accuracy of 0.0001 units.
But when I reduce the visible range to less than 0.01, yAxis automatically adjusts to a very large range. I’m sending a sample in the attachment. How do I create a yAxis with steps of at least 0.001?

0 votes
322 views

Hello
I want a realtime chart that start rendering from middle of the screen, not from start of the screen

0 votes
315 views

Hello
I want to make a real time chart that its visible range consists of two part.
The first half of the visible range of chart is always blue and the rest is black.

0 votes
304 views

Hello,
I want to use SubDayTextFormatting in android so that when the visible range reaches the same day, e.g. as I zoom, it switches from dd:MMM:yyyy to HH:mm.
How can I do that?

0 votes
0 answers
296 views

Hello,
I want to use SubDayTextFormatting in android so that when the visible range reaches the same day, e.g. as I zoom, it switches from dd:MMM:yyyy to HH:mm.
How can I do that?

0 votes
335 views

Hello

I was wondering if it would be possible to create a simple clean looking chart like described in the attached image. I am looking for a “SuccessRateChart” that has some similarity to the PieChart but does not use the whole circle to describe its content. I would also need a way to adjust the visible radius of the Pie. In means of information visualization you often hear the term “doughnut chart”…

On way could be to draw some circle stacked over the chart itself, but there should be a better solution.

Would love to hear from you,

Kind regards,
Stephan

0 votes
500 views

我想实现一个功能,需要改变选中区域里面的几根蜡烛颜色为除了涨跌之外的其他颜色,整个功能该怎么实现?

0 votes
423 views

Hello
Currently, I downloaded Schichart Android (trial version).
But I cannot add its library to my application dependency.
I think it is caused because of my SDK version. (As it shows error: ‘compile’ is not permitted here , use ‘implementation’ instead)
As I guess SchiChart use Android 4.4 KitKat -9.x, while I use (SDK) Nougat and higher versions.
Is my assumption right, or are there any other problems connected with it?
Can you help me please with advice.
thanks in advance.
Best regards.

1 vote
406 views

I want to share RolloverModifier in multiple charts I am using these lines of code but it is not sharing Rollover modifier

var rollOver: RolloverModifier? = null
rollOver = RolloverModifier()

val sharedRolloverModifier = sciChartBuilder.newModifierGroup()
.withMotionEventsGroup(“SharedRolloverModifier”).withReceiveHandledEvents(true)
.withModifier(rollOver).withReceiveHandledEvents(true)
.build()

surface.chartModifiers.add(sharedRolloverModifier)

  • sci chart asked 4 months ago
  • last active 4 months ago
0 votes
387 views

How to use ClipModeX on our desired values instead of ClipAtExtents or ClipAtMin/Max?

  • sci chart asked 4 months ago
  • last active 4 months ago
0 votes
442 views

Hi,
We want to use scichart for ios-android and wpf platforms to use in our applications developed by our company for Financial (Trading) purposes. In our review, we found that we can use Linear Trendline for wpf platform in your documents. However, there was no documentation for the android and ios platforms. Since Linear Trendline is of great importance for trading, it is important to know whether this feature is available or if it will be developed as a new feature by you. I would ask you to provide information on the subject.

0 votes
489 views

I want to maintain shape of scichart minor and major grids as square as shown in image below how can I do that?

  • sci chart asked 6 months ago
  • last active 4 months ago
0 votes
534 views

Hello,

Let me first describe the issue we have and why I think a possible solution would be to catch the double tap event.

Our chart consists of 6 series. We have an X axis that shows timestamps and 5 Y axis’ for different data like pressure value, temperature, etc. which are of type double. Additionally under the chart we have a legend that displays these 5 Y axis series (one series per one Y axis) with ability to change the visibility of the series and axis.

The problem occurred when as an example, temperature values throughout are constant, e.g. 24.5. The line gets drawn and it is a stable line. Axis is also displayed. However, when a user does the double tap gesture on the chart surface, which usually resets the zoom extents, the axis that has static/non-changing values does some sort of re-initialize animation and after several of double tab gestures only axis label remains (minor and major ticks disappear).

If I could catch the double tap gesture event and override it I could for example say that if the data is static don’t do anything. However, I don’t know where this event is and how to override it.

Any help would be much appreciated.

Thank you.
Regards,
Paul.

  • pauzu asked 6 months ago
  • last active 6 months ago
0 votes
531 views

Hi,
I am using scichart android I want Pinch zoom Modifier to Zoom equally on both X and Y Axis at the same time so that shape of grids always remain square as shown in image below .. How can I do that?

  • sci chart asked 6 months ago
  • last active 5 months ago
Showing 1 - 50 of 329 results