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

0 votes
278 views

I’ve received this crash report for a long time since I use this SDK.
But now it’s the largest amount of crash report in the newest version.
Do you have any idea about this?
I use the SDK to show meter temperature and humidity data. It’s about 10k to 30k data show in the chart and every time the user has download the data or the user zoom, drag the chart will recalculate the min, max, avg number in the visible time range.
Thank you~

  • Switch Bot asked 3 months ago
  • last active 3 months ago
0 votes
270 views

After upgraded SciChart to SciChart_iOS_SDK_3.0.0.5074, using rollover modifier on a SciChart surface which was embedded into a scroll view will crash the app. It crashed when user scroll horizontally on a SciChart surface inside a horizontal scrollable scrollview. It is the same with the vertically scrollable scrollview.

2020-03-09 10:14:15.489302+0800 ******[4835:62890] -[SCIRolloverModifier onTouchesCancelled:]: unrecognized selector sent to instance 0x60000ba28500

2020-03-09 10:14:15.503967+0800 *******[4835:62890] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[SCIRolloverModifier onTouchesCancelled:]: unrecognized selector sent to instance 0x60000ba28500’
*** First throw call stack:
(
0 CoreFoundation 0x00007fff23c7127e exceptionPreprocess + 350
1 libobjc.A.dylib 0x00007fff513fbb20 objc_exception_throw + 48
2 CoreFoundation 0x00007fff23c91fd4 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3 CoreFoundation 0x00007fff23c75c4c
forwarding + 1436
4 CoreFoundation 0x00007fff23c77f78 _CF_forwarding_prep_0 + 120
5 SciChart 0x000000011139aaba -[SCITouchModifierBase onEvent:] + 186
6 SciChart 0x000000011135dfd8 +[SCIEventManager raiseOnEvent:toTarget:isMaster:] + 267
7 SciChart 0x000000011132d03f __38-[SCIEventDispatcher p_SCI_commonInit]_block_invoke + 165
8 SciChart 0x000000011132d45d -[SCIEventDispatcher raiseOnEvent:withAction:] + 569
9 SciChart 0x000000011133fa94 -[SCIChartSurfaceBase p_SCI_onTouchEvent:] + 233
10 SciChart 0x000000011133f996 -[SCIChartSurfaceBase touchesCancelled:withEvent:] + 209
11 UIKitCore 0x00007fff480bf863 forwardTouchMethod + 340
12 UIKitCore 0x00007fff480bf974 -[UIResponder touchesCancelled:withEvent:] + 49
13 UIKitCore 0x00007fff480bf863 forwardTouchMethod + 340
14 UIKitCore 0x00007fff480bf974 -[UIResponder touchesCancelled:withEvent:] + 49
15 UIKitCore 0x00007fff480a4a43 __106-[UIApplication _cancelViewProcessingOfTouchesOrPresses:withEvent:sendingCancelToViewsOfTouchesOrPresses:]_block_invoke + 609
16 UIKitCore 0x00007fff480a429e -[UIApplication _cancelTouchesOrPresses:withEvent:includingGestures:notificationBlock:] + 1163
17 UIKitCore 0x00007fff480a47ac -[UIApplication _cancelViewProcessingOfTouchesOrPresses:withEvent:sendingCancelToViewsOfTouchesOrPresses:] + 158
18 UIKitCore 0x00007fff47c37f2f -[UIGestureEnvironment _cancelTouches:event:] + 707
19 UIKitCore 0x00007fff47c40115 -[UIGestureRecognizer _updateGestureForActiveEvents] + 1779
20 UIKitCore 0x00007fff47c31eda _UIGestureEnvironmentUpdate + 2706
21 UIKitCore 0x00007fff47c3140a -[UIGestureEnvironment _deliverEvent:toGestureRecognizers:usingBlock:] + 467
22 UIKitCore 0x00007fff47c3117f -[UIGestureEnvironment _updateForEvent:window:] + 200
23 UIKitCore 0x00007fff480d04b0 -[UIWindow sendEvent:] + 4574
24 UIKitCore 0x00007fff480ab53b -[UIApplication sendEvent:] + 356
25 UIKit 0x0000000114ad2bd4 -[UIApplicationAccessibility sendEvent:] + 85
26 UIKitCore 0x00007fff4812c71a __dispatchPreprocessedEventFromEventQueue + 6847
27 UIKitCore 0x00007fff4812f1e0 __handleEventQueueInternal + 5980
28 CoreFoundation 0x00007fff23bd4471 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
29 CoreFoundation 0x00007fff23bd439c __CFRunLoopDoSource0 + 76
30 CoreFoundation 0x00007fff23bd3b74 __CFRunLoopDoSources0 + 180
31 CoreFoundation 0x00007fff23bce87f __CFRunLoopRun + 1263
32 CoreFoundation 0x00007fff23bce066 CFRunLoopRunSpecific + 438
33 GraphicsServices 0x00007fff384c0bb0 GSEventRunModal + 65
34 UIKitCore 0x00007fff48092d4d UIApplicationMain + 1621
35 ****** 0x000000010b51505f main + 143
36 libdyld.dylib 0x00007fff5227ec25 start + 1
37 ??? 0x0000000000000001 0x0 + 1
)

  • Gary Chan asked 3 months ago
  • last active 3 months ago
0 votes
301 views

I have exported 50 EEG example from SciChart aplication to a standalone solution. When i start debug, lines are not drawn, but the code is running and generated data seems ok. I have not made any modifications the the example code.

0 votes
346 views

Hi,

I am using SciChart_iOS_SDK_3.0.0.5074 with Swift 5.

I want to show string type on X-axis. I am using below code snippet.

class YearsLabelProvider: SCILabelProviderBase<SCINumericAxis> {

   var xLabels: [String] = ["Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test",     "Test", "Test", "Test", "Test", "Test", "Test"]

   func update(_ axis: ISCIAxisCore!) { }

   override func formatLabel(_ dataValue: ISCIComparable!) -> ISCIString! {
        let index = Int(dataValue.toDouble())
        return NSString(string: index >= 0 && index < xLabels.count ? xLabels[index] : "")
    }

    override func formatCursorLabel(_ dataValue: ISCIComparable!) -> ISCIString! {
        let index = Int(dataValue.toDouble())

        var result: String?

        if (index >= 0 && index < xLabels.count) {
            result = xLabels[index]
        }
        return NSString(string: result!)
    }
}

Application crashes while loading with the following error –

” *** Terminating app due to uncaught exception ‘Initializer not allowed Exception’, reason: ‘Parameterless initializer of Chart.YearsLabelProvider class shouldn’t be used. Please use one of the designated initializers instead'”

Kindly help us resolving this issue since this is a showstopper issue.
I would also like to know about what data SCIXyDataSeries accepts when we are working with strings.

0 votes
297 views

Hello,

I am trying to export my 3D chart to a file using SciChart3DSurface.ExportToFile. However, I am getting this error:

InvalidOperationException: There was an error reflecting property ‘InputBindings’.

Code behind:

var surface = ResultTestContent.Positional6DOFErrorTestPage.PositionalChart;
surface.ExportToFile($@"C:\temp\ChartTest.jpeg", SciChart.Core.ExportType.Jpeg, true,new Size(800,800));

XAML:

<s3D:SciChart3DSurface x:Name="PositionalChart" Grid.Column="1" ShowLicensingWarnings="True"
                    IsFpsCounterVisible="False"
                     IsAxisCubeVisible="True"
                     IsXyzGizmoVisible="False"
                     CoordinateSystem="RightHanded"
                           Background="White"
                           DebugWhyDoesntSciChartRender="True" RenderableSeries="{extensions:SeriesBinding RenderSeries3DViewModels}"
                           Visibility="Collapsed">

        <!-- Create XAxis -->
        <s3D:SciChart3DSurface.XAxis>
            <s3D:NumericAxis3D TickTextBrush="Black" AxisTitle="X (mm)" DrawMajorBands="True" DrawMajorGridLines="True"
                    DrawMinorGridLines="False"
                    DrawMajorTicks="True"
                    DrawMinorTicks="True"
                               MajorGridLineStyle="{StaticResource ResourceKey=MajorGridLineStyle}"
                               MinorGridLineStyle="{StaticResource ResourceKey=MinorGridLineStyle}"
                    AxisBandsFill="LightCyan"
                    FontSize="10"
                    TickLabelAlignment="Camera"
                               GrowBy="0.1, 0.1"/>
        </s3D:SciChart3DSurface.XAxis>
        <!-- Create YAxis -->
        <s3D:SciChart3DSurface.YAxis>
            <s3D:NumericAxis3D AxisTitle="Z (mm)" MajorGridLineStyle="{StaticResource ResourceKey=MajorGridLineStyle}"
                               MinorGridLineStyle="{StaticResource ResourceKey=MinorGridLineStyle}"
                               DrawMinorGridLines="False"
                    AxisBandsFill="LightCyan"
                    TickTextBrush="Black"
                    FontSize="10"
                    TickLabelAlignment="Camera"
                               GrowBy="0.1, 0.1"/>
        </s3D:SciChart3DSurface.YAxis>
        <!-- Create ZAxis -->
        <s3D:SciChart3DSurface.ZAxis>
            <s3D:NumericAxis3D AxisTitle="Y (mm)" MajorGridLineStyle="{StaticResource ResourceKey=MajorGridLineStyle}"
                               MinorGridLineStyle="{StaticResource ResourceKey=MinorGridLineStyle}"
                               DrawMinorGridLines="False"
                    AxisBandsFill="LightCyan"
                    TickTextBrush="Black"
                    FontSize="10"
                    TickLabelAlignment="Camera"
                               GrowBy="0.1, 0.1"/>
        </s3D:SciChart3DSurface.ZAxis>

        <!-- Create Interactivity Modifiers for rotating camera -->
        <s3D:SciChart3DSurface.ChartModifier>
            <s3D:ModifierGroup3D>
                <s3D:OrbitModifier3D ExecuteOn="MouseLeftButton" ExecuteWhen="None"/>
                <s3D:MouseWheelZoomModifier3D MouseWheelSensitivity="90" />
                <s3D:FreeLookModifier3D ExecuteOn="MouseRightButton"/>
                <s3D:TooltipModifier3D IsEnabled="True" SourceMode="AllSeries" ShowTooltipOn="MouseOver"/>
            </s3D:ModifierGroup3D>
        </s3D:SciChart3DSurface.ChartModifier>
    </s3D:SciChart3DSurface>

I’ve removed the binding from the xaml, yet I am still getting the same issue. Any help is appreciated, thanks.

0 votes
270 views

Good Evening,
I would like to customize the labels displayed in a Stacked Column Chart in order to be able to display some text coming from the series metadata, is there any way to do it?

Thanks
Best Regards

  • Luca Berti asked 3 months ago
  • last active 3 months ago
0 votes
329 views

I’m trying to build an entire chart in XAML but I’m unsure how I would bind to DataSeries.

For example…

<sci:SciChartSurface>

        <sci:SciChartSurface.XAxis>
            <sci:NumericAxis />
        </sci:SciChartSurface.XAxis>

        <sci:SciChartSurface.YAxis>
            <sci:NumericAxis />
        </sci:SciChartSurface.YAxis>

        <sci:SciChartSurface.RenderableSeries>
            <sci:FastImpulseRenderableSeries>

                <sci:FastImpulseRenderableSeries.DataSeries>

                    <!-- Completely made up "DataSeries" XAML tag, but this is the general idea of what I'm wanting to do -->

                    <DataSeries X="0" Y="{Binding Path=MyObject1.Value}" />
                    <DataSeries X="1" Y="{Binding Path=MyObject2.Value}" />
                    <DataSeries X="2" Y="{Binding Path=MyObject3.Value}" />
                    <DataSeries X="3" Y="{Binding Path=MyObject4.Value}" />

                </sci:FastImpulseRenderableSeries.DataSeries>

            </sci:FastImpulseRenderableSeries>
        </sci:SciChartSurface.RenderableSeries>

    </sci:SciChartSurface>

Is it possible to do something along those lines?

If something along those lines were possible I could probably even build out a DataTemplate to just generate the “DataSeries” tags.

Thanks!

  • Greg Knox asked 3 months ago
  • last active 3 months ago
0 votes
301 views

I want to save and print the chart . For saving and printing I referred to the following site, but it gives the error that access to the file path denied:

https://www.scichart.com/documentation/win/current/Screenshots,_Printing_and_Export_to_XPS.html

0 votes
0 answers
280 views

Hi,

i want to disable the pan effect when user long press on chart and allow the user to scroll only in the currently visible range to view the rollover tooltip so that user can see the reading in the current visible range. Once the long press is release, then enable the pan effect again.

Currently when user try to see the reading using rollover tooltip, the whole chart is moving. I have tried removing and adding the zoompanmodifier on long press gesture in ios. But it is not working.

Thank you in advance.

1 vote
431 views

Hello,

I’m evaluating SciChart v6.1 for a WPF realtime charting application.
So far everything has worked well, except some issues with very slow loading.
On my machine, any app referencing SciChart takes around 5-6 seconds to initialize before the app can continue loading.

Some debugging with dotTrace shows most of the time is spent in the constructor of SciChartSurface calling the Charting2DNativeDllsLoader constructor.

dev machine is Windows 10 Pro x64, core i7, 32GB ram
Visual Studio 2019 Pro
To duplicate create new WPF application, .NET Framework v4.8
In MainWindow constructor add two lines:

SciChartSurface.SetRuntimeLicenseKey("[TRIAL KEY]");
var tmp = new SciChartSurface();

Executing the second line takes around 5-6 seconds.
I have uploaded a sample project that duplicates this issue and dotTrace result.
Let me know if I can provide any other info.

0 votes
372 views

We need to be able to set our chart’s Y axis to be 105. When we add new series (realtime plotting) and one of the points has a value over 105 we need the chart to start auto-scaling to match that new Y value. In other words, unless the user manually zooms we always want the chart to self-resize after starting at a fixed 105 on the Y axis.

This might seem like a strange request at first but our application is expecting a real time series to plot points whose X values might go from -10 to +10; however, the Y value could go from anywhere between 0 and 100 (sometimes higher – although that is not a typical expected value). When we are auto-scaling XY values realtime with no minimal limits the series points are effectively zoomed in really close giving the user a feeling of “noise” to a series that technically doesn’t really exist.

I’ve attached a couple images that demonstrate what a typical series looks like for us. Imaging if only a small portion of the series were currently on the chart and we were using auto-scaling.

Although the 2nd images is a noisy series. It’s REALLY exacerbated when the initial series is auto-scaling during the measurement making it look like the 3rd image.

1 vote
297 views

Hello,
i have a chart with Xaxis as datetimeaxis and several Yaxes, when ZoomExtentsModifier is used, some YAxes disappear This problem can be solved with HighPrecisionNumericAxis, but the performance suffers
Version: v6.1.0 Build: 13075

  • Son Vu asked 3 months ago
  • last active 3 months ago
1 vote
322 views

Hello,

is there a way to update the X-Axis Values within an XYDataSeries?
What I found was the Update function to update the Y-Values.
https://www.scichart.com/documentation/win/current/webframe.html#SciChart.Charting~SciChart.Charting.Model.DataSeries.XyDataSeries%602~Update.html

But I can’t figure out how to update the X Values of the DataSeries.

The XyzDataSeries3D does support the functionality to update also the X Value.
https://www.scichart.com/documentation/win/current/webframe.html#SciChart.Charting3D~SciChart.Charting3D.Model.XyzDataSeries3D%603~Update.html

But for the NonUniformGridDataSeries3D I can’t figure out how to update any point.

Maybe I am missing something, just let me know.

Best Regards,
Nick

0 votes
291 views

Hi.

I’m software developer in a small company. Recently our company started using Windows domain and my desctop was added to the domain. Today I figured out what my SciChart license which was fine yesterday is not working. I’m observing “Sorry. Your license token appears to be invalid.”

What should I do to fix this?

0 votes
345 views

[remind]
Please tell me how to add licence to 2 computer I have.

0 votes
385 views

I’m trying to find some more info on SeriesAnimation. I’m implementing a ScaleAnimation that works when the chart first loads but I’d like for the series to animate each time the series is updated as well.

Is there a good way to do this?

Here’s my XAML for the ScaleAnimation that animates once when the chart loads…

<sci:FastImpulseRenderableSeries.SeriesAnimation>
                    <sci:ScaleAnimation AnimationDelay="0:0:1" Duration="0:0:1" />
 </sci:FastImpulseRenderableSeries.SeriesAnimation>
  • Greg Knox asked 3 months ago
  • last active 3 months ago
0 votes
384 views

Hello!

I am getting started with SciChart and attempting to use it for a project I’m working on.

I am attempting to make a 3D scatter plot whose data is populated through a ViewModel.

Below is a my xaml:

 <UserControl x:Class="CustomWindow.Pages.Results_Page.Common_Tests.Positional6DOFErrorTest"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:enum="clr-namespace:MultiMet.Interfaces.Common;assembly=MultiMet.Interfaces"
             xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"
             xmlns:s3D="http://schemas.abtsoftware.co.uk/scichart3D"
             mc:Ignorable="d" 
             d:DesignHeight="360" d:DesignWidth="712">

    <Grid Background="White">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <!-- Some other stuff I'm doing on the page -->

        <s3D:SciChart3DSurface Grid.Column="1" ShowLicensingWarnings="True"
                        IsFpsCounterVisible="False"
                         IsAxisCubeVisible="True"
                         IsXyzGizmoVisible="False"
                         CoordinateSystem="RightHanded"
                               Background="White" RenderableSeries="{s3D:SeriesBinding RenderableSeries3DViewModels}">
            <!-- Create XAxis -->
            <s3D:SciChart3DSurface.XAxis>
                <s3D:NumericAxis3D TickTextBrush="Black" AxisTitle="X (mm)" DrawMajorBands="True" DrawMajorGridLines="True"
                        DrawMinorGridLines="True"
                        DrawMajorTicks="True"
                        DrawMinorTicks="True"
                        AxisBandsFill="Transparent"
                        FontSize="10"
                        TickLabelAlignment="Camera"
                                   GrowBy="0.1, 0.1"/>
            </s3D:SciChart3DSurface.XAxis>
            <!-- Create YAxis -->
            <s3D:SciChart3DSurface.YAxis>
                <s3D:NumericAxis3D AxisTitle="Z (mm)"
                        AxisBandsFill="Transparent"
                        TickTextBrush="Black"
                        FontSize="10"
                        TickLabelAlignment="Camera"
                                   GrowBy="0.1, 0.1"/>
            </s3D:SciChart3DSurface.YAxis>
            <!-- Create ZAxis -->
            <s3D:SciChart3DSurface.ZAxis>
                <s3D:NumericAxis3D AxisTitle="Y (mm)"
                        AxisBandsFill="Transparent"
                        TickTextBrush="Black"
                        FontSize="10"
                        TickLabelAlignment="Camera"
                                   GrowBy="0.1, 0.1"/>
            </s3D:SciChart3DSurface.ZAxis>

            <!-- Create Interactivity Modifiers for rotating camera -->
            <s3D:SciChart3DSurface.ChartModifier>
                <s3D:ModifierGroup3D>
                    <s3D:OrbitModifier3D ExecuteOn="MouseLeftButton" ExecuteWhen="None"/>
                    <s3D:MouseWheelZoomModifier3D MouseWheelSensitivity="90" />
                    <s3D:FreeLookModifier3D ExecuteOn="MouseRightButton"/>
                    <s3D:TooltipModifier3D IsEnabled="True" SourceMode="AllSeries" ShowTooltipOn="MouseOver"/>
                </s3D:ModifierGroup3D>
            </s3D:SciChart3DSurface.ChartModifier>
        </s3D:SciChart3DSurface>
    </Grid>
</UserControl>

And below I declare and define my scatter plot in the viewmodel (the scatterSeries is an XyzDataSeries3D set somewhere else) :

    PositionalErrorTestModel.RenderSeries3DViewModels = new ObservableCollection<IRenderableSeries3DViewModel>();
PositionalErrorTestModel.RenderSeries3DViewModels.Add(new ScatterRenderableSeries3DViewModel
            {
                PointMarker = new SpherePointMarker3D { Fill = System.Windows.Media.Color.FromRgb(0x78, 0xC3, 0), Size = 5, Opacity = 1 },
                DataSeries = scatterSeries
            });

The chart appears, but the data does not. Is there something I’m missing? Do I need to explicitly call an update to the chart? Because the page the chart is on and the chart does get loaded before the data is populated.

Please let me know if you need to know anymore information.

Thanks for any help you can provide!

1 vote
0 answers
304 views

Hi I tried to bind the ChartModifer to a property in the VM. But though it build successful, and there is no warning or errors when I run the application , but the ChartModifier does not work.

Here is my code

    <sci:SciChartSurface Grid.Row="1" 
                         YAxes="{sci:AxesBinding YAxes}"
                         XAxes="{sci:AxesBinding XAxes}"
                         RenderableSeries="{sci:SeriesBinding RenderableSeries}"
                         Background="{Binding ChartBackBrush}"
                         Foreground="{Binding ChartForeBrush}"
                         ViewportManager="{Binding ViewportManager}"
                         ChartModifier="{Binding ChartModifiers}">
    </sci:SciChartSurface>

In ViewModel, I created all the child for the ChartModifiers. But it does not work.

        ChartModifiers = new ObservableCollection<IChartModifier>();
        //ModifierGroup.ChildModifiers
        ChartModifiers.Add(rubberBandXyZoomModifier);
        ChartModifiers.Add(new ZoomPanModifier()
        {
            ExecuteOn = ExecuteOn.MouseRightButton,
            ClipModeX = SciChart.Charting.ClipMode.None
        });
        ChartModifiers.Add(new ZoomExtentsModifier());
        ChartModifiers.Add(new MouseWheelZoomModifier());
        rolloverModifer = new RolloverModifier()
        {
            ExecuteOn = ExecuteOn.MouseMove,
            ShowTooltipOn = RolloverVisible
        };
        ChartModifiers.Add(rolloverModifer);

        xAxisDrag = new XAxisDragModifier()
        {
            IsEnabled = true,
            ClipModeX = SciChart.Charting.ClipMode.None,
            DragMode = SciChart.Charting.AxisDragModes.Pan
        };
        yAxisDrag = new YAxisDragModifier()
        {
            IsEnabled = true,
            DragMode = SciChart.Charting.AxisDragModes.Pan
        };

        ChartModifiers.Add(xAxisDrag);
        ChartModifiers.Add(yAxisDrag);
0 votes
360 views

Hi , I created multi charts by adding them to a collection and binding them to RenderableSeries in the xaml.

    <sci:SciChartSurface Grid.Row="1" 
                         YAxes="{sci:AxesBinding YAxes}"
                         XAxes="{sci:AxesBinding XAxes}"
                         RenderableSeries="{sci:SeriesBinding RenderableSeries}"
                         Background="{Binding ChartBackBrush}"
                         Foreground="{Binding ChartForeBrush}"
                         ViewportManager="{Binding ViewportManager}">
        <sci:SciChartSurface.ChartModifier>
            <sci:ModifierGroup>
                <sci:RubberBandXyZoomModifier ExecuteOn="MouseLeftButton"  RubberBandFill="#3380FF00" 
                                              RubberBandStroke="#AA0080FF"  RubberBandStrokeDashArray="2 2"/>
                <sci:ZoomPanModifier ExecuteOn="MouseRightButton" ClipModeX="None" />
                <sci:ZoomExtentsModifier/>
                <sci:MouseWheelZoomModifier/>
                <sci:RolloverModifier ExecuteOn="MouseMove" ShowTooltipOn="MouseHover"/>
                <sci:YAxisDragModifier IsEnabled="True" DragMode="Pan" />
                <sci:XAxisDragModifier IsEnabled="True" ClipModeX="None" DragMode="Pan"/>
            </sci:ModifierGroup>
        </sci:SciChartSurface.ChartModifier>
    </sci:SciChartSurface>

Then in the code – behind , I created the RenderableSeries.

          var lineSeries = new LineRenderableSeriesViewModel()
            {
                Stroke = (Color)ColorConverter.ConvertFromString(chartParameters.SeriesMetaData[column].LineBrush),
                StrokeThickness = 1,
                AntiAliasing = true,
                DataSeries = xyDataSeries,
                YAxisId = ConvertYAxisTitleToId(chartParameters.SeriesMetaData[column].YAxisId),
                XAxisId = AxisBase.DefaultAxisId,
                IsVisible = chartParameters.SeriesMetaData[column].Visibility
            };

            RenderableSeries.Add(lineSeries);

Now I got a reqirement to the background of the tooltip to transparent. I got some examples ,it seems I should change the s:RolloverModifier.TooltipContainerStyle. But I have no idea how to do it in the code-hebind.

Nearly all examples tell me sth like this, everything is done in the xaml.
<s:SciChartSurface.RenderableSeries>

</s:SciChartSurface.RenderableSeries>

  • zhiyu chen asked 3 months ago
  • last active 3 months ago
0 votes
346 views

Hi,

I display a waveform using Scichart DataSeries (IXyDataSeries), where waveform dots are not evenly spaced.

I want to read back a sample of this waveform (example: last 10 seconds displayed on the screen) from IXyDataSeries.

The goal is to get waveforms dots again into an array, but this time I want them to be evenly spaced (Sample rate between X is the same).

This means propably that new points will be generated/deleted by the IXyDataSeries during the resampling.

Does Scichart provide a way to do that ?

Thanks

-1 votes
0 answers
298 views

Hi I am using pod ‘SciChart’, ‘3.0.1-nightly.5114’.

Q1)How get selected series instance, index. How to change the color of the selected series.(Using UITapGestureRecognizer and HitTest).

Q2)How to show only Min and Max tick label value of Y Axis. Just want to hide the intermediate tick labels in between Min and Max of Y Axis.

Q3)How to give some spaces at beginning and end of the series in Scichart.

Q4)How to hide the square gray stroke around the Scichart.

0 votes
304 views

I want to install the same trial version of Scichart on my two laptops. So please tell me the process to logout from one laptop, to use in another laptop as I can use the Scichart at one instance at a time.

0 votes
350 views

Hello,

Is it possible to set duration for tool tip over chart series?. I use TooltipModifier to display tool tip on series.
Thanks
Deepak

  • deepak b asked 3 months ago
  • last active 3 months ago
0 votes
0 answers
368 views

I want to clear the background of my scichart surface, i.e. remove the default grid line structure from the background surface. Please tell me the way to do that in c# code.

0 votes
0 answers
279 views

Hi

Assume multiple charts link to same list of objects, each chart represents a different property(ies) of the same object, xAxil and yAxil for the charts might be different but total number of data points are the same. Is it possible to link up operation in one chart to other charts? In my case I need to present multiple charts, not one charts with multiple series. This is for WPF.

Thanks.

Sal

1 vote
452 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

0 votes
357 views

Hello,

Is there a corresponding Documentation for the 3D Chart like this one for 2D Charts: https://www.scichart.com/example/wpf-chart-example-series-with-metadata/

What I am trying to do is to make some PointMarkers of the ScatterRenderableSeries3DViewModel in the 3D Chart bigger depending on the PointMetadata3D.
For 2D Charts I could accomplish that with the Documentation mentioned above. Now I want to do the same for 3D Charts.

Can someone give me a hint how to do that?

0 votes
349 views

Hello SciChart Team,

I was facing a problem lately and would like to know if you can reproduce it or maybe if you have fixed it in the latest version already.

I have created a chart with a X axis using DateTime as format. When I use the RolloverModifier in combination with Interpolation I get an ArgumentOutOfRangeException when moving the cursor to the Y Axis (see attached image).

I have attached the full excetption details as well.

I am looking forward to your feedback.

Thanks and best regards
Stefan

SciChart Version: 5.4.0.12119
SciChart Runtime Version: v4.0.30319


System.ArgumentOutOfRangeException was unhandled Message: An unhandled
exception of type 'System.ArgumentOutOfRangeException' occurred in
WindowsBase.dll Additional information: Ticks must be between
DateTime.MinValue.Ticks and DateTime.MaxValue.Ticks.


System.ArgumentOutOfRangeException: Ticks must be between DateTime.MinValue.Ticks and DateTime.MaxValue.Ticks.
Parameter name: ticks
   at System.DateTime..ctor(Int64 ticks)
   at A.ARB.Subtract(DateTime a, DateTime b)
   at SciChart.Charting.Model.DataSeries.DataSeries2.FindClosestLine(IComparable x, IComparable y, Double xyScaleRatio, Double xRadius, LineDrawMode drawNanAs)
   at SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries.NearestHitResult(Point mouseRawPoint, Double hitTestRadiusInPixels, SearchMode searchMode, Boolean considerYCoordinateForDistanceCalculation)
   at SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries.HitTestInternal(Point rawPoint, Double hitTestRadius, Boolean interpolate)
   at SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries.HitTest(Point rawPoint, Double hitTestRadius, Boolean interpolate)
   at SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries.VerticalSliceHitTest(Point rawPoint, Boolean interpolate)
   at SciChart.Charting.ChartModifiers.RolloverModifier.GWB(Point D)
   at SciChart.Charting.ChartModifiers.RolloverModifier.BY.MoveNext()
   at SciChart.Charting.Common.Extensions.EnumerableExtensions.RU.MoveNext()
   at SciChart.Core.Extensions.EnumerableExtensions.ForEachDo[T](IEnumerable1 enumerable, Action1 operation)
   at SciChart.Charting.ChartModifiers.RolloverModifier.FillWithIncludedSeries(IEnumerable1 infos, ObservableCollection1 seriesInfos)
   at SciChart.Charting.ChartModifiers.RolloverModifier.HandleMasterMouseEvent(Point mousePoint)
   at SciChart.Charting.ChartModifiers.InspectSeriesModifierBase.TUB(Point D)
   at SciChart.Charting.ChartModifiers.InspectSeriesModifierBase.HandleMouseEvent(ModifierMouseArgs e)
   at SciChart.Charting.ChartModifiers.InspectSeriesModifierBase.OnModifierMouseMove(ModifierMouseArgs e)
   at SciChart.Charting.ChartModifiers.ModifierGroup.<>c.OB(IChartModifier D, ModifierEventArgsBase I)
   at SciChart.Charting.ChartModifiers.ModifierGroup.FTB(Action2 D, ModifierEventArgsBase I)
   at SciChart.Charting.ChartModifiers.ModifierGroup.OnModifierMouseMove(ModifierMouseArgs e)
   at SciChart.Core.Utility.Mouse.MouseManager.UB(ModifierMouseArgs D, IReceiveMouseEvents I, Boolean J)
   at SciChart.Core.Utility.Mouse.MouseManager.ZDB.M(IReceiveMouseEvents D)
   at SciChart.Core.Extensions.EnumerableExtensions.ForEachDo[T](IEnumerable1 enumerable, Action1 operation)
   at SciChart.Core.Utility.Mouse.MouseManager.JB(IReceiveMouseEvents D, ModifierMouseArgs I, Action3 J)
   at SciChart.Core.Utility.Mouse.MouseManager.GB(IPublishMouseEvents D, IReceiveMouseEvents I, MouseEventArgs J, MouseButtons M, Action3 O)
   at SciChart.Core.Utility.Mouse.MouseManager.AEB.T(Object D, MouseEventArgs I)
   at A.LEB.S(MouseEventArgs D)
   at A.LEB.M(Object D, MouseEventArgs I)
   at System.Windows.Input.MouseEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at XXX.App.Main()
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
  • Stefan Ott asked 4 months ago
  • last active 4 months ago
1 vote
0 answers
357 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
348 views

I am creating a chart that uses an XML file that holds data in a tabular format (headers and rows) that i covert to a datatable of strings and then try to convert each column/row value to a double to populate an XYDataSeries object. Sometimes the amount of data is very large which can take 10-15 seconds to process, which is not ideal for the application it is used in.

What i would like to do is create placeholder XYDataSeries that have a series name and dynamically create the data and YAxis when the series is selected initially from the legend.

Is this possible? I have tried in the past but have issues with the data being null.

0 votes
0 answers
329 views

I need z data in DataSeries using LineAnnotation.

Note:
Z data of blue areas 0
Z data of green areas 50

Any help? Thank you.

0 votes
322 views

I’m trying to export a surface to an image running this simple line of code:

SciChartSurface.ExportToBitmapSource(false, null);

and it works, but the size of exported image is not good enough for me, so I’m trying this line of code:

SciChartSurface.ExportToBitmapSource(false, size);

But that’s what I’m getting:

System.Windows.Markup.XamlParseException: ''No matching constructor found on type 'SciChart.Charting.Model.ChartData.XySeriesInfo'. You can use the Arguments or FactoryMethod directives to construct this type.' Line number '1' and line position '1884'.'

I would appreciate any help,

Thank you.

0 votes
340 views

I want to modify the format of XAxis Label of example “MultiPaneStockCharts”, so I do this:

<s:SciStockChart.XAxisStyle>
                            <Style TargetType="s:CategoryDateTimeAxis">

                                <!--added the format here, but does not work-->
                                <Setter Property="TextFormatting" Value="yyyy-MM-dd"/>

                                <Setter Property="DrawMajorBands" Value="True" />
                                <Setter Property="DrawMinorGridLines" Value="False" />
                                <Setter Property="VisibleRange" Value="{Binding ParentViewModel.XVisibleRange, Mode=TwoWay}" />
                                <Setter Property="GrowBy" Value="0, 0.05" />
                            </Style>
                        </s:SciStockChart.XAxisStyle>

But the format of the XAxis labels are not modified as I want it. It seems that something inside the example is preventing format setting, since in different zoom rate the label format is changing.

How can I modify the format?

Thank you.

  • xing king asked 4 months ago
  • last active 4 months ago
0 votes
332 views

Hi,

to draw a stock bar, the open-close width are auto set according to zoom, which is okay. But the highest-lowest line in the middle of a stock candlestick is too thin.

I’ve been searching for a way to increase the width of the highest-lowest line, but neither the showcases nor the forum provides a solution.

Any help? Thank you.

  • xing king asked 4 months ago
  • last active 4 months ago
0 votes
339 views

i am tried to use this code in window.cs file …it is not showing any output. kindly let me know the steps what i have to do for getting output

// Create the chart surface
var sciChartSurface = new SciChartSurface();

// Create the X and Y Axis
var xAxis = new NumericAxis() { AxisTitle = "Number of Samples (per series)"};
var yAxis = new NumericAxis() { AxisTitle = "Value"};

sciChartSurface.XAxis = xAxis;
sciChartSurface.YAxis = yAxis;

// Specify Interactivity Modifiers
sciChartSurface.ChartModifier = new ModifierGroup(new RubberBandXyZoomModifier(), new ZoomExtentsModifier());
// Add annotation hints to the user
var textAnnotation = new TextAnnotation()
{
   Text = "Hello World!",
   X1=5.0,
   Y1=5.0
};
sciChartSurface.Annotations.Add(textAnnotation);
  • cse dbmt asked 4 months ago
  • last active 4 months ago
0 votes
417 views

I’m getting the following crash:

2020-02-14 16:45:43.902812-0500 CommonStock Development[2425:710225] -[SCIRolloverModifier onTouchesCancelled:]: unrecognized selector sent to instance 0x282ffe080
2020-02-14 16:45:43.904098-0500 CommonStock Development[2425:710225] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[SCIRolloverModifier onTouchesCancelled:]: unrecognized selector sent to instance 0x282ffe080’

whenever I try to scrub my chart, I must also note that in order for the legend to show, I have to tap really hard on the surface.

This is my code:

func set(data set: SimpleChartDataSet, alternate: SimpleChartDataSet) {

    let lineDataSeries = SCIXyDataSeries(xType: .double, yType: .double)
    let dashedDataSeries = SCIXyDataSeries(xType: .double, yType: .double)

    let group = DispatchGroup()
    group.enter()

    DispatchQueue.global(qos: .userInteractive).async {
        for (index, i) in set.enumerated() {
            lineDataSeries.append(x: Double(index), y: Double(i))
        }

        for (index, i) in alternate.enumerated() {
            dashedDataSeries.append(x: Double(index), y: Double(i))
        }

        group.leave()
    }

    group.notify(queue: .main) {

        let lineSeries = SCIFastMountainRenderableSeries()
        lineSeries.zeroLineY = set.min() ?? 0.0
        lineSeries.dataSeries = lineDataSeries
        lineSeries.strokeStyle = SCISolidPenStyle(color: UIColor.green, thickness: 2.0)
        lineSeries.areaStyle =  SCILinearGradientBrushStyle(start: CGPoint(x: 0, y: 1), end: CGPoint(x: 0, y: 0), start: UIColor.green, end: UIColor.clear)

        let dashedSeries = SCIFastLineRenderableSeries()
        dashedSeries.zeroLineY = set.min() ?? 0.0
        dashedSeries.dataSeries = dashedDataSeries
        dashedSeries.strokeStyle = SCISolidPenStyle(color: UIColor.white, thickness: 2.0, strokeDashArray: [2.0,2.0,2.0,2.0])

        SCIUpdateSuspender.usingWith(self.surface) {

            self.surface.xAxes.clear()
            self.surface.yAxes.clear()
            self.surface.renderableSeries.clear()

            let xAxis = SCINumericAxis()
            xAxis.drawLabels = false
            xAxis.drawMajorBands = false
            xAxis.drawMajorGridLines = false
            xAxis.drawMinorGridLines = false
            xAxis.drawMinorTicks = false
            xAxis.drawMajorTicks = false
            xAxis.drawLabels = false

            let yAxis = SCINumericAxis()
            yAxis.drawLabels = false
            yAxis.drawMajorBands = false
            yAxis.drawMajorGridLines = false
            yAxis.drawMinorGridLines = false
            yAxis.drawMinorTicks = false
            yAxis.drawMajorTicks = false
            yAxis.drawLabels = false

            self.surface.xAxes.add(items: xAxis)
            self.surface.yAxes.add(items: yAxis)
            self.surface.renderableSeries.add(items: lineSeries, dashedSeries )
            self.surface.chartModifiers.add(SCIRolloverModifier())
        }
    }
}
0 votes
348 views

(WPF) I am confused about the difference among Rollover tooltip, Cursor tooltip and Tooltip. In CustomTooltipsWithModifiers.xaml in example suite, it has all of them, I can see they have different styles, but not sure when to use which. Please advise. Thanks.

  • sally an asked 4 months ago
  • last active 4 months ago
0 votes
362 views

I was testing my charts on a simulator and when I naved away and then back to the chart screen the Simulator’s chart was totally black screen; I could move the mouse over the points and the popouts would occur; and your license notice showed in the center of the chart. So it was almost like it thought all the drawing for the chart itself needed to be black on black.

It was always broken on the 2nd or later chart. Restarting the app fixed it. I tried removing all custom settings, and calling the invalidate; and nothing caused it to redraw correctly… Fortunately, when deploying to real devices everything worked correctly. Is this an expected side effect of testing on a simulator, or is their something that I can do to force a hard refresh of the chart…

FYI: The additional debug diagnostics don’t seem to do anything on a simulator, or at least I couldn’t find anywhere it was logged.

0 votes
399 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
402 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
350 views

I want add some line series my with mouse. Left click down for start, move mouse to draw line and mouse up to finish. The problem, that SciChartSurface do not raise MouseDown event ever. And another issue get mouse position according axis values.

What the best way draw line series with mouse?

1 vote
388 views

I found the example for spline drawing, but it’s still missing the gradient brush that mountain series have, how can I add it? thanks

0 votes
412 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
343 views

Hi! I have an overview control, which uses 2-way binding for the x-axis visible range. I actually followed the WPF Realtime Ticking Stock Charts example, the only difference is that I have a line chart with DateRange x-axis. Everything works, except that the overview’s x-axis maximum visible range is not the same as the actual chart’s visible range. Normally the chart is rolling and the maximum x visible range is always ahead of the latest data, just as it’s in the stock chart example. However, the overview’s x visible range always matches the latest x-axis value of the data. So when the overview’s grip is used to scale the x-axis to go back in time, the chart’s x-axis maximum visible range always jumps to match the latest x-axis value of the data and the chart stops rolling. I just don’t get what am I doing wrong or am I missing something? Please see the attached screenshot and the source code. I’m evaluating SciChart to see if it fits our needs before we’d make a purchase and this is something that should work.

Chart Xaml:

<s:SciChartSurface Grid.Row="0" x:Name="Chart" RenderableSeries="{s:SeriesBinding SeriesViewModels}">
            <!--  Create an X Axis  -->
            <s:SciChartSurface.XAxis>
                <s:DateTimeAxis AxisTitle="Time" VisibleRange="{Binding XVisibleRange, Mode=TwoWay}" GrowBy="0, 0.1" DrawMinorGridLines="False" DrawMajorBands="True"/>
            </s:SciChartSurface.XAxis>
            <!--  Create a Y Axis  -->
            <s:SciChartSurface.YAxis>
                <s:NumericAxis AxisTitle="Count" AutoRange="Always" GrowBy="0.1"/>
            </s:SciChartSurface.YAxis>
            <!--  Specify interactivity modifiers  -->
            <!-- Add Zooming, Panning behaviours to the chart -->
            <s:SciChartSurface.ChartModifier>
                <s:ModifierGroup>
                    <!-- Allow drag to zoom on Left mouse -->
                    <s:RubberBandXyZoomModifier ExecuteOn="MouseLeftButton"
                                                         RubberBandFill="#33FFFFFF" RubberBandStroke="#AAFFFFFF"
                                                         RubberBandStrokeDashArray="2 2"/>
                    <!-- Allow pan on Right mouse drag -->
                    <s:ZoomPanModifier ExecuteOn="MouseRightButton" ClipModeX="None" />
                    <!-- Allow Dragging YAxis to Scale -->
                    <s:YAxisDragModifier DragMode="Scale"/>
                    <!-- Allow Dragging XAxis to Pan -->
                    <s:XAxisDragModifier DragMode="Pan"/>
                    <!-- Allow Mousewheel Zoom -->
                    <s:MouseWheelZoomModifier/>
                    <!-- Allow Zoom to Extents on double click -->
                    <s:ZoomExtentsModifier ExecuteOn="MouseDoubleClick"/>
                    <!-- Add a RolloverModifier to the chart (shows vertical line tooltips) -->
                    <s:RolloverModifier ExecuteOn="MouseMove" ShowTooltipOn="MouseHover"/>
                </s:ModifierGroup>
            </s:SciChartSurface.ChartModifier>
        </s:SciChartSurface>
        <!-- Add a Scrollbar, and bind to SciChartSurface.XAxis -->
        <Grid Grid.Row="1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <!--<ColumnDefinition Width="75"/>-->
            </Grid.ColumnDefinitions>
            <!--<s:SciChartScrollbar Grid.Column="0" Axis="{Binding ElementName=Chart, Path=XAxis}"/>-->
            <s:SciChartOverview Grid.Column="0"
                                DataSeries="{Binding SeriesViewModels[0].DataSeries, Mode=OneWay}"
                                ParentSurface="{Binding Source={x:Reference Name=Chart}, Mode=OneWay}"
                                SelectedRange="{Binding XVisibleRange, Mode=TwoWay}"/>
        </Grid>

View model:

private DateRange _xVisibleRange;
public DateRange XVisibleRange
{
        get => _xVisibleRange;
        set => SetProperty(ref _xVisibleRange, value);
}

// after appending new data
var LatestXValue = DataSeries.XValues.Last();
var MaxXVisRange = XVisibleRange.Max;

if (MaxXVisRange > LatestXValue)
{
        var existingRange = _xVisibleRange;
        var newRange = new DateRange(existingRange.Min.AddSeconds(rollBySeconds), existingRange.Max.AddSeconds(rollBySeconds));
        XVisibleRange = newRange; 
        // the overview doesn't have this range, despite of two-way binding
        // it has the latest x-axis value as max visible range
}
0 votes
313 views

In example https://www.scichart.com/example/wpf-chart-example-stacked-column-side-by-side/ there is a LabelProvider with hardcoded labels. How can I bind it to a collection of Labels?

0 votes
339 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
439 views

Hi,

I’m creating lines chart with data from CSV file.
I have multiple series and each serie has its own YAxis.
As it comes from different CSV files, the number of series and their names are not known in advance.

I create the series in the code (MVVM) .

I’m using the trial version for 2 weeks now and before I purchase the licence, I have two questions:

1) I need to implement a function allowing the user to create multiple VerticalSliceModifier and display data for each serie on the graph and store data to a list or datatable.

Is it possible to have Vertical Slice Tooltip with multiple YAxis ?
If I create a vertical line annotation, can I get data for each serie crossing the line?

2) I need to be able to add annotation dynamically (measure, text, box, lines…).
Is there a way to save annotations to a list (and then to a file) so that if the user reopens the same CSV file he can load and display the corresponding annotations?

Thank you in advance for your answer,
Regards
Nicolas

0 votes
408 views

Hello,
On my SciChartSurface, we’re processing real-time data so the chart is always moving. I noticed that when I do a single left-click anywhere on the chart, it changes the ZoomState property from AtExtents to UserZooming.

Is there a way to prevent this?

I was hoping the MinDragSensitivity on the RubberBandXyZoomModifier would handle that but it doesn’t seem to care.

You can reproduce this by using the Drag Area to Zoom example and viewing the ZoomState of the SciChartSurface after you single click on the chart.

What I’m looking for is a way to only change the ZoomState to UserZooming if the MinDragSensitivity has been met.

Thanks in advance.

0 votes
404 views

Hello! I have a real time line chart and a SciChartOverview control and the problem is, as soon as I want to extend the visible range with the overview’s slider, the chart’s x visible range is zoomed to extent. I’d like to have the same functionality as in the ScrollChartUsingOverviewControl example and the real time ticking stock chart. In those examples, if the visible range is extended by the overview scroll bar’s left-hand slider, the max visible range keeps rolling with new data, while the min visible range is extended. I followed those examples, by binding the XVisibleRange to the view model in 2 way mode, but for me the max visible range jumps to the latest data as soon as I move the overview’s slider to the left (stops rolling with new data).

Chart xaml:

<s:SciChartSurface Grid.Row="0" x:Name="Chart" RenderableSeries="{s:SeriesBinding SeriesViewModels}">
            <!--  Create an X Axis  -->
            <s:SciChartSurface.XAxis>
                <s:DateTimeAxis AxisTitle="Time" VisibleRange="{Binding XVisibleRange, Mode=TwoWay}" GrowBy="0, 0.1" DrawMinorGridLines="False" DrawMajorBands="True"/>
            </s:SciChartSurface.XAxis>
            <!--  Create a Y Axis  -->
            <s:SciChartSurface.YAxis>
                <s:NumericAxis AxisTitle="Count" AutoRange="Always" GrowBy="0.1"/>
            </s:SciChartSurface.YAxis>
            <!--  Specify interactivity modifiers  -->
            <!-- Add Zooming, Panning behaviours to the chart -->
            <s:SciChartSurface.ChartModifier>
                <s:ModifierGroup>
                    <!-- Allow drag to zoom on Left mouse -->
                    <s:RubberBandXyZoomModifier ExecuteOn="MouseLeftButton"
                                                         RubberBandFill="#33FFFFFF" RubberBandStroke="#AAFFFFFF"
                                                         RubberBandStrokeDashArray="2 2"/>
                    <!-- Allow pan on Right mouse drag -->
                    <s:ZoomPanModifier ExecuteOn="MouseRightButton" ClipModeX="None" />
                    <!-- Allow Dragging YAxis to Scale -->
                    <s:YAxisDragModifier DragMode="Scale"/>
                    <!-- Allow Dragging XAxis to Pan -->
                    <s:XAxisDragModifier DragMode="Pan"/>
                    <!-- Allow Mousewheel Zoom -->
                    <s:MouseWheelZoomModifier/>
                    <!-- Allow Zoom to Extents on double click -->
                    <s:ZoomExtentsModifier ExecuteOn="MouseDoubleClick"/>
                    <!-- Add a Legend to the chart -->
                    <s:LegendModifier ShowLegend="True" Orientation="Horizontal"
                                               VerticalAlignment="Bottom"                                     
                                               HorizontalAlignment="Center"
                                               LegendPlacement="Inside" />
                    <!-- Add a RolloverModifier to the chart (shows vertical line tooltips) -->
                    <s:RolloverModifier ExecuteOn="MouseMove" ShowTooltipOn="MouseHover"/>
                </s:ModifierGroup>
            </s:SciChartSurface.ChartModifier>
        </s:SciChartSurface>
        <!-- Add a Scrollbar, and bind to SciChartSurface.XAxis -->
        <Grid Grid.Row="1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <!--<ColumnDefinition Width="75"/>-->
            </Grid.ColumnDefinitions>
            <!--<s:SciChartScrollbar Grid.Column="0" Axis="{Binding ElementName=PhotonChart, Path=XAxis}"/>-->
            <s:SciChartOverview Grid.Column="0"
                                DataSeries="{Binding SeriesViewModels[0].DataSeries, Mode=OneWay}"
                                ParentSurface="{Binding Source={x:Reference Name=Chart}, Mode=OneWay}"
                                SelectedRange="{Binding XVisibleRange, Mode=TwoWay}"/>
        </Grid>

Am I missing something, or what am I doing wrong?

1 vote
361 views

Originally my chart would
– create the surface
– setup the chart modifiers
– setup the axis
– add the data (SCIFastLineRenderableSeries).

However, it appears that when you .add(new SCIFastLineRenderableSeries) it recreates all the tooltips on each add, and finally on the very last SCIFastLineRenderableSeries that is inserted will get two duplicate tooltips. This happens both with the default tooltips or custom tooltips.

I finally noticed that some of your examples you setup the modifiers at the end after adding the data. So I moved all the chart modifiers into a separate function and called it after the data is setup, and now the proper number of tooltips appears.

This might either need to be noted somewhere prominent in the iOS docs; or even better the order shouldn’t matter.

Showing 101 - 150 of 3k results