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

0 votes
34 views

Hi,

How can we turn the light off and on in 3D drawings in Android studio?

Best regards…

0 votes
97 views

I have a line chart and need to implement textAlign: left property for tickLabel on yAxis. I have found some way to do it on the forum, but it does not work in my case:
xAxis.setAxisTickLabelStyle(new AxisTickLabelStyle(Gravity.CENTER, Layout.Alignment.ALIGN_CENTER, 5, 0, 5, 0));
I get the error:
Alignment cannot be converted to int
But according documentation https://www.scichart.com/documentation/android/current/SciChart.Charting~com.scichart.charting.visuals.axes.AxisTickLabelStyle~_ctor.html AxisTickLabelStyle class get 5 int arguments. Can you help me please how to solve it!

0 votes
0 answers
117 views

Hello,

Today, I tried https://github.com/ABTSoftware/SciChart.Xamarin.Forms repository to my project. ColumnRenderableSeries3D is missing, so I was added by manually. But now I stuck.

I can’t change column width and color.

I know, Xamarin forms actually in plan, but somehow someone can help me, if I share my whole code?

I Attached my image.

0 votes
0 answers
98 views

Hi
Sometimes when I call annotation.setIsHidden in a surface with RenderSurfaceGl, not works.
what should I do?

0 votes
225 views

Hello,
I have a problem with the 3D surface chart. I have used the 3D example from the Example Tutorial as an example. As soon as I make xSize and ySize larger than 128, a gap appears in the respective axes.
Is it possible that these sizes are limited? Or have I made a mistake?

In the attachment you will find the resulting pictures.
The good one has an xSize and ySize of 128 and the bad one 129.

0 votes
197 views

i recently saw documentation about compositeannotation in wpf

do you have same version for android?
how to combine all annotation as one annotation?

0 votes
0 answers
172 views

My chart is dynamic, adding data from the right side all the time, and scrolling the chart to the left. Now the chart can manually scroll to the right indefinitely, but there are many blank areas on the right side. What can I do to limit the range of scrolling to the right? Is there any way to limit the zoom ratio to prohibit the chart from scrolling to the right indefinitely?

0 votes
232 views

My chart is dynamic, adding data from the right side all the time, and scrolling the chart to the left. Now the chart can manually scroll to the right indefinitely, but there are many blank areas on the right side. What can I do to limit the range of scrolling to the right? Is there any way to limit the zoom ratio to prohibit the chart from scrolling to the right indefinitely?

  • WU GUANGYU asked 1 month ago
  • last active 1 month ago
0 votes
258 views

Hi, I just want to make sure

everything inside com.scichart.charting.visual will be considered as VIEW in MVVM pattern right?

thanks

0 votes
300 views

In Scichart Android version 4.2.0.4557, ICategoryLabelProvider.transformDataToIndex(Date var1); accept date as parameter

but at version 4.2.0.4608, int transformDataToIndex(double var1); it accept double?

then how to convert date to double?

and another question.

  1. how set start tick axis in category date axis?
    what i see here first tick of x axis always come with data, not like date axis which data can adapt their position itself.

  2. how to set time frame in date axis like category date axis?

  3. without scichart builder i cannot set time frame in categorydateaxis

0 votes
230 views

I’m evaluating chart libraries to my next project and I’m trying to do a simple chart like the one in the attached image.
It was actually very easy to do it using MPAndroidChart, however it’s been hard to do a simple task like put a label aligned with the column… I did take a look into the SciChart sample application, but the application just uses numeric labels…
Can someone provide some guidance of how to do this?

0 votes
267 views

Hello,

I am having some difficulties using a custom DateTickProvider.

I am trying to offset the values to “anchor” the chart to specific local time (see original question at “https://www.scichart.com/questions/android/axis-value-anchor” for details)

class CustomDateTickProvider() : DateTickProvider() {
    override fun updateTicks(minorTicks: DoubleValues, majorTicks: DoubleValues) {
        // super appears to sometimes recalc based on GMT, and sometimes provide offsets from my previous offsets.
        super.updateTicks(minorTicks, majorTicks) 

       // My offset code here, assumes tick values are GMT based...
    }
}

My code usually works, but sometimes it doesn’t. It appears that when I call super.UpdateTicks(..), it usually generates new ticks based on GMT, but sometimes it simply provides a small offset (like when I pan) based on existing tick values. Is that correct?

Is there a way for me to Force updateTicks to always recalculate based on GMT, or a way for me to tell if updateTicks is recalculating based off GMT or just doing offsets on the existing tick marks?

Or should I be going at this in a different direction?

Thank you.

  • C Bolton asked 2 months ago
  • last active 2 months ago
0 votes
267 views
0 votes
245 views

Hello again,

Pardon me if I’m missing something obvious, but I am trying to center align a multiline tick label. I want both lines of the label to be centered. By default they seem to be left-justified. See attached image of current behavior.

xAxis = DateAxis(this)
xAxis.textFormatting = "h:mma\nMMM d" 

Thank you.

  • C Bolton asked 2 months ago
  • last active 2 months ago
0 votes
264 views

I’m not sure if I’m understanding the Axes minorsPerMajor behavior correctly, or if this is a Scichart issue.

Using a “vanilla” axis like:

xAxis = DateAxis(this)
xAxis.drawMajorGridLines = false
xAxis.drawMinorGridLines = false
xAxis.drawMajorTicks = true
xAxis.drawMinorTicks = false
xAxis.textFormatting = "h:mma\nMMM d"
xAxis.subDayTextFormatting = "h:mma\nMMM d"
xAxis.minorsPerMajor = 1 // does not change # minor ticks no matter what it is set at, if drawMinorTicks = true
val xAxes: AxisCollection = chartSurface.getXAxes()
xAxes.add(xAxis)

If I set drawMinorTicks=false, I get no minor ticks, as expected. However, if I set it to true, I always get a bunch of ticks, no matter what I set minorsPerMajor to. I want just 1 mnor tick between majors. I’ve attached screenshots of the axis with drawMinorTicks set to both true and false using the above code.

Thanks for your assistance.

  • C Bolton asked 3 months ago
  • last active 3 months ago
0 votes
284 views

Hi,
Im tried to convert date into xAxis using this tutorial

https://www.scichart.com/documentation/android/current/webframe.html#Axis%20APIs%20-%20Convert%20Pixel%20to%20Data%20Coordinates.html

but i got this error

Java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object com.scichart.data.numerics.math.IMath.fromDouble(double)' on a null object reference

here my code

https://gist.github.com/ngiyus/4590c009261a28dba2c8b10e123a97f3

0 votes
0 answers
313 views

Hello,

I’m using the recommended function well, thank you.
By the way, can I control the shade shown in the picture?
What I want is not detailed but simple functions such as light On, Off, Up, Down.

Best regards

0 votes
311 views

Hi,

I want to draw the shape of the waveform that stretches out from one point.
I tested it using ‘CreateEllipsoidMesh3DChartFragment’ from example source, but I found problem.

I initialized the displacement value to 0, and entered the displacement value of the point I wanted.
In the image I uploaded, the coordinates are symmetrical, but the shape is different.

Is there a rule that connects coordinates when you draw a triangle?
Is there any way I can control this?

I have attached the image and code.

best regards, Thank you

  • Mobile SW4 asked 3 months ago
  • last active 3 months ago
0 votes
339 views

Hi,
Im tried to convert date into xAxis using this tutorial

https://www.scichart.com/documentation/android/current/webframe.html#Axis%20APIs%20-%20Convert%20Pixel%20to%20Data%20Coordinates.html

but i got this error

Java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object com.scichart.data.numerics.math.IMath.fromDouble(double)' on a null object reference
0 votes
341 views

when loading first data everything goes fine
growby max padding as expected (Image1)

but i added realtime data and data grow, it show strange behaviour, padding more than i expected. (image2)

final IAxis xAxis = sciChartBuilder.newCategoryDateAxis().withVisibleRange(xVisibleRange).withGrowBy(0.1,0.1).build();

ZoomPanModifier zoomPanModifier = new ZoomPanModifier();
zoomPanModifier.setClipModeX(ClipMode.ClipAtExtents);
zoomPanModifier.setClipModeTargetX(ClipModeTarget.MaximumRange);

any workaround? thanks

0 votes
0 answers
267 views

Hi, Yura

Thank you for answer.
But, the dataSeries you told me is not suitable for me.
(The example uses the following data series. EllipsoidDataSeries3D, CustomSurfaceDataSeries3D, CylindroidDataSeries3D, PolarDataSeries3D, UniformGridDataSeries3D)

I want to make it through a data series where I can put coordinates myself, like ‘XyzDataSeries3D’. If you set ‘XyzDataSeries3D’ from ‘FreeSurfaceRenderableSeries3D’, Exception will occur.

For example, what should I do if I want to implement the following shapes as solid?
(0,0,0), (0,0,1), (2,0,0), (2,0,1), (0,3,0), (0,3,1), (2,3,0), (2,3,1).

If the above is not possible, is there a way to draw in 3D chart a triangle as solid connected by the following coordinates?
(x1, y1, z1), (x2, y2, z2), (x3, y3, z3) .
If possible, I think can make a polyhedron by connecting it.

best regards, thank you.

0 votes
400 views

Hi,
How can I programmatically prevent panning, zooming, yaw, pitch movements on the screen whenever I want?

Best regards…

0 votes
296 views

Hello!

I want to draw an irregular polyhedron in 3D chart. And I know the coordinates for each vertex.
However, I couldn’t find the appropriate API.
please, need a API or a guide to help me…

best regards, Thank you

  • Mobile SW4 asked 3 months ago
  • last active 3 months ago
0 votes
346 views

Hello to everyone.

Is it possible to draw the 2d heatmap chart output that appears in pixel shape smoothly? Is there any way to solve this with the current library?

0 votes
0 answers
313 views

Hello there. I am very novice compared to you. As soon as I press a button in the main activty, what should I do to see the data set that I have determined before on the screen?

Thank you from now.

MainActivity code part:

        btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mdata = new double[][]{
                    {3, 2, -1.97, -2.81, -0.33, 1.53, 2.04, 2-.08, -1.94, -1.42, -1.58},
                    {-1.77, -1.76, 1.1, 0.26, -0.72, -0.64, -3.26, -3.2, -3.1, -1.94, -1.54},
                    {0, 0, 0, 0, 0, -3.7, -3.7, -3.7, -3.7, 0.48, 0.48},
                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
            };

            final Camera3D camera = sciChart3DBuilder.newCamera3D().withPosition(-1300, 1300, -1300).build();

            final NumericAxis3D xAxis = sciChart3DBuilder.newNumericAxis3D().withMaxAutoTicks(7).build();
            final NumericAxis3D yAxis = sciChart3DBuilder.newNumericAxis3D().withVisibleRange(-4d, 4d).build();
            final NumericAxis3D zAxis = sciChart3DBuilder.newNumericAxis3D().build();
            final int xSize = 11;
            final int zSize = 4;

            final UniformGridDataSeries3D<Double, Double, Double> ds = new UniformGridDataSeries3D<>(Double.class, Double.class, Double.class, xSize, zSize);
            ds.setStartX(0d);
            ds.setStepX(0.09);
            ds.setStartZ(0d);
            ds.setStepZ(0.75);

            for (int z = 0; z < zSize; z++) {
                for (int x = 0; x < xSize; x++) {
                    ds.updateYAt(x, z, mdata[z][x]);
                }
            }
        }
    });
0 votes
362 views

Hello there. I am very novice compared to you. As soon as I press a button in the main activty, what should I do to see the data set that I have determined before on the screen?

Thank you from now.

MainActivity code part:

        btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mdata = new double[][]{
                    {3, 2, -1.97, -2.81, -0.33, 1.53, 2.04, 2-.08, -1.94, -1.42, -1.58},
                    {-1.77, -1.76, 1.1, 0.26, -0.72, -0.64, -3.26, -3.2, -3.1, -1.94, -1.54},
                    {0, 0, 0, 0, 0, -3.7, -3.7, -3.7, -3.7, 0.48, 0.48},
                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
            };

            final Camera3D camera = sciChart3DBuilder.newCamera3D().withPosition(-1300, 1300, -1300).build();

            final NumericAxis3D xAxis = sciChart3DBuilder.newNumericAxis3D().withMaxAutoTicks(7).build();
            final NumericAxis3D yAxis = sciChart3DBuilder.newNumericAxis3D().withVisibleRange(-4d, 4d).build();
            final NumericAxis3D zAxis = sciChart3DBuilder.newNumericAxis3D().build();
            final int xSize = 11;
            final int zSize = 4;

            final UniformGridDataSeries3D<Double, Double, Double> ds = new UniformGridDataSeries3D<>(Double.class, Double.class, Double.class, xSize, zSize);
            ds.setStartX(0d);
            ds.setStepX(0.09);
            ds.setStartZ(0d);
            ds.setStepZ(0.75);

            for (int z = 0; z < zSize; z++) {
                for (int x = 0; x < xSize; x++) {
                    ds.updateYAt(x, z, mdata[z][x]);
                }
            }
        }
    });
0 votes
378 views

Hello!
I’m trying to migrate OhlcDataSeries from Double to more accurate BigDecimal on Android.
But I faced with an issue that “GenericClass doesn’t support class”

How can I fix it?
I want to use BigDecimal with chart.

Thank you

  • Roman Z asked 4 months ago
  • last active 4 months ago
0 votes
0 answers
329 views

I noticed that there are two debugging perspectives in Eclipse that are set for Android development.

Why two?

What does DDMS perspective do that Debug perspective does not?

To clarify, I’m only interested in the diff comparison table, not the complete list of DDMS functions.

Session.StatusCallback cannot be resolved for type – Facebook API
Can’t debug via eclipse on the phone with Jelly Bean
What does the use of “.” Without an object in Android (or java)?
Launching TriggerIO Android ForgeInspector
Android Maven in Eclipse – creating an activity
I’m also curious to know why the people who developed DDMS didn’t add it to the Debug perspective, but chose to implement it as an independent perspective.

0 votes
0 answers
499 views

does anybody have binary option source code example?
i want to learn it

0 votes
481 views

Referring to the stacked column side by side example in the android examples collection, if someone clicks on a column/series in that chart, how could i identify which the of columns has been selected (usa, china, india, etc).

0 votes
0 answers
427 views

I realized that removing a series from a chart and adding the same series back again (instead of toggling visibility) breaks the modifiers for that series (e.g, rollover, legend). Why is that? Is toggling visibility the preferred way?

0 votes
450 views

I’ve attached example code where setting “majorTickLineLength” appears to have no effect on the length of the major tick lines. I’m trying to make them shorter than the default (half the length). How can I adjust the length of these tick lines?

0 votes
545 views

I am extending a PieSegmentLabelFormatterBase to format the segment label of a piechart. however I cannot find any information regarding how I can change its size. So my question is How can I change the font size of piechart labels?

0 votes
471 views

using android scichart with two surfaces vertically on the screen, that is one above the other, same width. I wish to match the width of the X axis on both. when the labels of the Y axis are formatted differently the X axis may change overall width. I suppose there could be two approaches,
1) fix or match the width of the X axis
2) fix or match the width of the Y axis labels

which is the simplest? and where can I learn more?

  • Van Malan asked 6 months ago
  • last active 6 months ago
0 votes
607 views

Hello,

I am wanting to “force” an axis label on a specific value. For example, right now in my datetime graph it always shows a “5PM” time on the axis regardless of the data. Instead, I would like to “anchor” the axis ticks on a different time value, like local Noon. We were able to do this in our previous charting solution, but I have not yet figured out how to do it with SciChart.

Thank you.

  • C Bolton asked 7 months ago
  • last active 6 months ago
0 votes
519 views

Hi,

I’d like to enable AnnotationCreationListener with a toggle button pressed down, and disable it with the button released. It’s different from the Android sample code in Create Annotation Dynamically. I have a few questions when I’m trying to code. I’m not sure if my approach is on the right track. Please advise, thanks.

// insert button listener
    insertAnnotationButton = findViewById(R.id.annotationInsertButton);
    insertAnnotationButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // TODO: add chartmodifier/annotationCreationModifier when button pressed down
            if (insertAnnotationButton.isChecked()) {
                annotationCreationModifier.setAnnotationType(???); // how to set type to vertical line annotation?
                DefaultAnnotationFactory annotationFactory = new DefaultAnnotationFactory();
                annotationFactory.setFactoryForAnnotationType(DefaultAnnotationFactory.VERTICAL_LINE_ANNOTATION, new IAnnotationFactory() {
                    @NonNull
                    @Override
                    public IAnnotation createAnnotation(@NonNull ISciChartSurface parentSurface, int annotationType) {
                        return sciChartBuilder.newVerticalLineAnnotation().withIsEditable(true).withStroke(1, White).withVerticalGravity(Gravity.FILL_VERTICAL).build();
                    }
                });
                annotationCreationModifier.setAnnotationFactory(annotationFactory);
                annotationCreationModifier.setAnnotationCreationListener(new OnAnnotationCreatedListener() {
                    @Override
                    public void onAnnotationCreated(IAnnotation iAnnotation) {
                        // how to get X coordinate of the annotation and update my annotation variable

                    }
                });
                ecmSurface.getChartModifiers().add(sciChartBuilder.newModifierGroup().withModifier(annotationCreationModifier)..build());
            } else {
                // how to remove annotationCreationModifier from ChartModifiers?
                ecmSurface.getChartModifiers().remove(???);
            }
        }
    });
  • Gang Xu asked 7 months ago
  • last active 7 months ago
0 votes
573 views

Hello,

I’m trying to figure out how to apply a consistent gradient to the areas underneath my line charts. For example, if I have chart with Y values 0-10, I might want the area corresponding to 0 to be white, and 10 to be black, regardless of what values are currently panned or zoomed onto the screen. From what I have seen so far, SciChart gradients are based on the current screen values, so if I were zoomed into an area that was only 0-5, it would should a white to black gradient (not what I want), whereas I need a white to grey variant (reserving the black for 10’s). I hope that makes sense.

Thank you.

  • C Bolton asked 7 months ago
  • last active 7 months ago
0 votes
539 views

How to move date labels to the middle of the day ?

val xAxis = DateAxis(applicationContext).apply {
        drawLabels = true
        autoFitMarginalLabels = true
        axisTitle = "X Date Axis"
        axisAlignment = AxisAlignment.Bottom
        drawMajorBands = false
        drawMinorGridLines = false
        drawMajorGridLines = true
    }
0 votes
562 views

HI,

I’m trying to go through the “Your First App” tutorials

I’ve completed the first one:
“Creating your First SciChart Android App – Part 1”:
https://www.scichart.com/documentation/android/current/webframe.html#Creating%20your%20First%20SciChart%20Android%20App%20-%20Part%201.html

which seems fine.

I then go to
“Creating your First SciChart Android App – Part 2”:
https://www.scichart.com/documentation/android/current/webframe.html#Creating%20your%20First%20SciChart%20Android%20App%20-%20Part%202.html

Unfortunately, I don’t see the SciChart items in the Palette when I scroll down to the Custom section.

Could you point to how I can make SciChart available please?

Screen shots attached.

Thank you,
Ed

  • Ed Sykes asked 7 months ago
  • last active 7 months ago
0 votes
557 views

Hi,

I just downloaded SciChart for Android. Trying to get the Example to work.

I’ve put my trial key in SciChartApp.java and tried to run.

Here are the errors (screen shot attached).

Thank you,
Ed

  • Ed Sykes asked 7 months ago
  • last active 7 months ago
0 votes
705 views

I have a few problems that I’m trying to address with y-axis labelling.

  1. I am including a y-axis on the left side of my graph but want the text of the labels to be right-aligned. Each label uses two lines of text. How can I do that?
  2. I want the margin of the text to be a specific width so that I can line up the y-axis of multiple scichart surfaces that are stacked vertically. How can I set each of my scichart surfaces to use a particular margin for the y-axis labelling?
  3. The y-axis label text will wrap when I don’t want it to (see attached image — The text of the label should be “1m \n Left” and I am currently seeing “1m \n Lef \n t”). How do I turn off the wrapping of text on the y-axis?

———-

This is how I am currently implementing the y-axis:

NumericAxis(context).apply {
    drawLabels = true
    axisAlignment = AxisAlignment.Left
    this.labelProvider = labelProvider
    this.tickProvider = tickProvider
    drawMajorBands = false
    drawMajorTicks = false
    drawMinorTicks = false
    drawMajorGridLines = false
    drawMinorGridLines = false
    isLabelCullingEnabled = false
    visibleRange = DoubleRange(
            dataRange.first,
            dataRange.second
    )
    autoRange = AutoRange.Never
    tickLabelStyle = FontStyle(
            TypefaceManager.obtainTypeface(context, CustomTypeface.PROXIMA_NOVA_REG),
            context.resources.getDimension(R.dimen.results_screen_graph_labels_text_size),
            Color.LTGRAY
    )
}
0 votes
556 views

Android
App version 3.1.1.4423

I am able to sync two charts and receive events between both charts.

However, I wanted to remove the shared y-axis panning between the charts.
I was able to get this working by setting the “withReceiveHandledEvents(false)” linked to the motion event group and setting the “.withYAxisDragModifier().withReceiveHandledEvents(false)”.

However, the current problem being faced, is that, the cursor is now no longer synced between the two charts as if I had “withReceiveHandledEvents(false)” on the motion event group.

I tried using the cursor modifier group, but this did not provide a syncing cursor between the charts.

Is there a way to sync the cursor between the charts without having the y-axis panning synced as well?

0 votes
609 views

Hello,

I get data from reading an URL so I save them (prepared) to a Arraylist (type PieSegment). How can I add the PieSegments from the Arraylist with (for example a loop) to my Piechart?

BR and thank you very much.
Marco

0 votes
620 views

Hi everyone,

I’m working on a 2D chart on Android that requires the distance between major axes to be exactly 5 millimetres. How do I configure the major axis delta/ticks or resize the chart to meet my need?

Thank you.

0 votes
577 views

Hello,

I want to use the MultiplePieDonutChart. Like in the example, I want to have a touch tooltip.
I tried it with that code:

LinearLayout chartLayout = (LinearLayout) root.findViewById(R.id.chart_layout);
SciChartLegend legend = root.findViewById(R.id.pieChartLegend);

    chartLayout.addView(surface);

    SciChartBuilder.init(MainMenu.getActivity());

    final SciChartBuilder sciChartBuilder = SciChartBuilder.instance();

    final IPieRenderableSeries pieSeries = sciChartBuilder.newPieSeries().withSeriesName("HowPeopleTravel").withSegments(
            sciChartBuilder.newPieSegment().withValue(34).withTitle("Ecologic").withRadialGradientColors(0xff84BC3D, 0xff5B8829).build(),
            sciChartBuilder.newPieSegment().withValue(34.4).withTitle("Municipal").withRadialGradientColors(0xffe04a2f, 0xffB7161B).build(),
            sciChartBuilder.newPieSegment().withValue(31.6).withTitle("Personal").withRadialGradientColors(0xff4AB6C1, 0xff2182AD).build()
    ).build();
    final IPieRenderableSeries donutSeries = sciChartBuilder.newDonutSeries().withSeriesName("DetailedGroup").withSegments(
            sciChartBuilder.newPieSegment().withValue(28.8).withTitle("Walking").withRadialGradientColors(0xff84BC3D, 0xff5B8829).build(),
            sciChartBuilder.newPieSegment().withValue(5.2).withTitle("Bicycle").withRadialGradientColors(0xff84BC3D, 0xff5B8829).build(),
            sciChartBuilder.newPieSegment().withValue(12.3).withTitle("Metro").withRadialGradientColors(0xffe04a2f, 0xffB7161B).build(),
            sciChartBuilder.newPieSegment().withValue(3.5).withTitle("Tram").withRadialGradientColors(0xffe04a2f, 0xffB7161B).build(),
            sciChartBuilder.newPieSegment().withValue(5.9).withTitle("Rail").withRadialGradientColors(0xffe04a2f, 0xffB7161B).build(),
            sciChartBuilder.newPieSegment().withValue(9.7).withTitle("Bus").withRadialGradientColors(0xffe04a2f, 0xffB7161B).build(),
            sciChartBuilder.newPieSegment().withValue(3.0).withTitle("Taxi").withRadialGradientColors(0xffe04a2f, 0xffB7161B).build(),
            sciChartBuilder.newPieSegment().withValue(23.2).withTitle("Car").withRadialGradientColors(0xff4AB6C1, 0xff2182AD).build(),
            sciChartBuilder.newPieSegment().withValue(3.1).withTitle("Motorcycle").withRadialGradientColors(0xff4AB6C1, 0xff2182AD).build(),
            sciChartBuilder.newPieSegment().withValue(5.3).withTitle("Other").withRadialGradientColors(0xff4AB6C1, 0xff2182AD).build()
    ).build();

    Collections.addAll(surface.getRenderableSeries(), pieSeries, donutSeries);
    Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newLegendModifier(legend).withShowCheckBoxes(false).withSourceSeries(pieSeries).build(), new PieChartTooltipModifier());

But if I touch on the chart I didn’t get the tooltip. As you see I have nearly copy all the code of the Example but I do not work. Where is my fault?

0 votes
645 views

Hi,

I have a list of 12 items, but at the start I only want to see the last 6 items on the chart (stacked column chart). I want to be able to scroll / drag to reveal the first part of the list. I use the index of the list for the x-axis, so the list has indexes with range from [0, 11]

I’m having some weird behaviour implementing this.
When the data is loaded, i see the complete bars:

creenshot 2020-09-18 at 11.04.14.png

but when I start to scroll, i’m never able to reveal the complete bars anymore:
![Screenshot 2020-09-18 at 11.04.40.png][2]
![Screenshot 2020-09-18 at 11.04.59.png][3]

When i start scrolling to the end (although the chart is already at the end), the UI jumps and only shows half a bar. Also when i scroll to the beginning, it only shows half a bar.

How can I make sure I always see the complete bars?

This is the code, specific to the x axis & the scrolling:

val xAxis = sciChartBuilder.newNumericAxis()
            .withDrawMajorBands(false)
            .withDrawMajorGridLines(false)
            .withDrawMinorGridLines(false)
            .withDrawMinorTicks(false)
            .withMajorDelta(1.0)
            .withMinorDelta(0.2)
            .withAutoTicks(false)
            .withVisibleRange(5.5, 11.5)
            .build()

using half values for the range seems to be the only way I can see the full bars. Once I start scrolling I only see half bars at the start & end

val surfaceChartModifiers: ChartModifierCollection = chart.chartModifiers
val dragModifier = XAxisDragModifier()
dragModifier.dragMode = AxisDragModifierBase.AxisDragMode.Pan
surfaceChartModifiers.add(dragModifier)

val zoomPanModifier = ZoomPanModifier()
zoomPanModifier.clipModeX = ClipMode.ClipAtExtents
zoomPanModifier.direction = Direction2D.XDirection
zoomPanModifier.zoomExtentsY = false
surfaceChartModifiers.add(zoomPanModifier)
0 votes
648 views

Hi,

I figure there is probably a way to do this, but I haven’t figured it out yet.

I would like remove (or maybe just make transparent?) my chart areas top and right borders, leaving the lefthand and bottom alone. I’ve attached an image with the borders circled that I would like to remove to make it clear.

Thank you.

  • C Bolton asked 8 months ago
  • last active 8 months ago
0 votes
790 views

I used box annotation like pic
in a boxAnnotation I used

.withIsEditable(true)
.withPosition(1,-2, 0, 2)
.withBackgroundDrawableId(R.drawable.example_box_annotation_background_4)
.withResizingGrip(customIResizingGrip)
.withAnnotationDragListener(customIAnnotationSelectionDrawable)
.withResizeDirections(Direction2D.XDirection)
.withDragDirections(Direction2D.XDirection)
.build();

and i made a 2 box like pic

i use box for drag one side to make a box big or small

the first box which is left doesn’t move anywhere.
it just can only drag that i want
but the second box, the box moves when i drag after first touch
the left box never moves on but right box moves first drags
just move first time not sometimes

am i wrong something?

  • Justin Lee asked 9 months ago
  • last active 8 months ago
0 votes
691 views

Hello,

I’m trying to add custom text to a rollover cursor that is dependent on its X and Y Values.

For instance, if the Y Value is 1, but the X value (date) is old, it should say “1 ft Observed”, but if it the date is in the future, it should say “1 ft Predicted”. I can format the cursor label via NumericLabelProvider, but it only provides me the Y value, and I need the corresponding X value as well to properly format the cursor label.

    class NumericLabelProviderEx() : NumericLabelProvider() {
        override fun formatCursorLabel(doubleValue: Double): CharSequence {
            val formatString = "%.1f %s\n%s"
            // Any way to get corresponding X value for this so I can change "Observed" to "Predicted" if this point is in the future?
            val s = String.format(formatString, doubleValue, "ft", "Observed")
            return s
        }
    }

    yAxis.setLabelProvider(NumericLabelProviderEx())

Is there an alternative approach to accomplish this within SciChart?

Thank you.

  • C Bolton asked 9 months ago
  • last active 9 months ago
0 votes
766 views

Hello.

I’m trying to modifying Audio Analyzer Example.

This is scenario.

  1. Read wav file
  2. Calculate FFT (for all sample data of wav file)
  3. Display FFT result to FFT & Spectrogram chart.

The point is this : read all data at once and calulate FFT for dispaly in chart.

I already have FFT result with re[] and im[] type arrays.

  1. When I setting up X,Y axis of FFT chart, following code applied.
    Q. x,y axis and value setup is correct?

                // prepare fft input (dataF is float type sample data of wav file)
                double[] re = new double[dataF.length];
                double[] im = new double[dataF.length];
                double[] mag = new double[dataF.length];
                for(int ii=0; ii<dataF.length; ii++) {
                    re[ii] = (double)dataF[ii];
                    im[ii] = 0.0d;
                }
    
                FFTf.transform(re, im);  // using Bluestein DFT algorithm.
    
                for(int nn=0; nn < re.length; nn++) {
                    mag[nn] = Math.sqrt(re[nn] * re[nn] + im[nn] * im[nn]);
                    if(nn <= 10 || re.length - 10 <= nn)
                }
    
                // setup fft and x,y values
                for(int l=0; l < re.length/20; l++) {
                    fftDS.append((1.0*l*sampleRate/re.length), Math.sqrt(re[l] * re[l] + im[l] * im[l]));
                }
    
  2. When I setting up X,Y axis of Spectrogram chart, following code applied.
    Q. x,y axis and value setup is correct?

                fftCount = dataProvider.getAudioDataByteSize() / 4096;
                spectrogramDS = new UniformHeatmapDataSeries<>(Long.class, Long.class, Double.class, re.length/20, fftCount);
                fftOffsetValueCount = (re.length/20)*fftCount - (re.length/20);
                spectrogramValues = new DoubleValues((re.length/20)*fftCount);
                spectrogramValues.setSize((re.length/20)*fftCount);
    
                // update spectrogram chart data
                for(int jj=0; jj < fftCount; jj += 4096) {
                    double[] spectrogramItems = spectrogramValues.getItemsArray();
                    double[] fftItems = getFrom(mag, 4096, jj);
    
                    System.arraycopy(spectrogramItems, re.length/20, spectrogramItems, 0, fftOffsetValueCount);
                    System.arraycopy(fftItems, 0, spectrogramItems, fftOffsetValueCount, re.length/20);
    
                    spectrogramDS.updateZValues(spectrogramValues);
                }
    

FFT chart is working but Spectrogram is not.

Thank you for your help!

Showing 1 - 50 of 414 results