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

0 votes
0 answers
15 views

Hi,

I’m looking for the old version 3.1.0.5122. Where can I find it?

Best regards

  • miri asked 1 day ago
0 votes
14 views

I am working on Scichart Android application .I am using two Scichart surfaces on a single activity ,I want to handle click event on scichart surface so that,whenever I click on surface it will start a new activity which contains a single Scichart.

0 votes
17 views

Dear support,

What is the best way to anchor a GroupBox to the top right corner of a SciChartSurface (as shown in the attached screenshot)? At the moment, I am using an absolute positioning that often fails at initialization or when the surface is resized. I am looking into the annotation API, but have not yet found a clean solution.

Thank you,
Lucas

0 votes
18 views

I am attempting to transfer a license from another developer to myself. That developer has deactivated the license using the licensing wizard yesterday, and his account shows the license as deactivated, but when I attempt to activated the license errors occur

Serial key ************************** has already been activated by UserName=catesax, ‘Andrew Cates’,

0 votes
14 views

I am using Abt.Controls.SciChart.Wpf dll(Version ) in our project and got an error ‘Object reference not set to an instance of an object’ when i do mousewheel scroll over symbol drop down and move the mouse over the scichart surface while scrolling and the error stack trace is

at Abt.Controls.SciChart.ChartModifiers.MouseWheelZoomModifier.OnModifierMouseWheel(ModifierMouseArgs e)
at Abt.Controls.SciChart.ChartModifiers.ModifierGroup.SB(Action2 C, ModifierEventArgsBase D)
at Abt.Controls.SciChart.Common.Extensions.EnumerableExtensions.[](IEnumerable
1 , Action`1 )
at Abt.Controls.SciChart.Utility.Mouse.MouseManager..(Object , MouseWheelEventArgs )
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.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 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at TradingSystemApp.Program.Main() in

0 votes
16 views

I am developing an Android application for ELD. I have also explored the graph options SciChart is offering but I could not see a very similar graph to the image I have attached.
Please help me in choosing an appropriate type graph. It would be more helpful if you could name type of the graph I have attached.
enter image description here

0 votes
27 views

I have a fairly simple multiple series line chart, which shows the history of a couple of variables within the last 5, 15, or 30 minutes.

The x axis is always ranged between Now – X mins and Now + 10 secs (to allow for clock error).

I’d like to have the x axis constantly scrolling, smoothly. I’ve not been able to achieve this using a timer. I’ve tried to use AnimatedVisibleRange, triggered from a 500ms timer, but there’s quite visible jerking.

I should add that the data comes in sporadically, but the chart should still scroll without any new data.

What am I missing? Thanks

0 votes
23 views

Hi!

I’ve put a couple of charts in a recyclerview based on this example. I’m using a custome theme that’s basically just a white background and grey gridlines. When the charts get recycled (after scrolling them out of view and then back) they start to look weird. Does anyone know what is causing this behavior? I’ve tried two different versions of SciChart, screenshots attached below. Additionally I used to only get some random black squares like this in version 2.0.0.1654, but I can’t seem to reproduce that now.

Chart normally:
Regular Chart

After recycle in version 2.0.0.1654:
After recycle version 2.0.0.1654

After recycle in version 2.5.0.2540:
After recycle version 2.5.0.2540

0 votes
25 views

I have created a CustomControl that have scichart surface which draws a FastLineRenderableSeries and some other controls like buttons etc for controlling how data is displayed.
I have some dependecy properties like
– VisibleRange
– Horizontal and vertical Anotations values
as well as the XyDataSeries<double,double>

When I use the control in a window I can data bind to a viewmodel and VisibleRange and the annotations are fine but not the update of the XyDataSeries.

Any ideas?

0 votes
31 views

Hi All,

I am new to SciChart world and need little assistance. I have to export scichart to image(format not matter right now). I am using WPF with MVVM. I have created a scichartsurface object in my viewmodel and now tryng to assign different properties that are bind to my actual scichartsurface in View. I am facing type casting error while assigning annotation preperty.

Here’s I define Annotation bind to actual graph in view

     public BindableCollection<TextAnnotationViewModel> GraphAnnotations;

here’s the code for where I am getting type mismatch error

    private void ChartToImage()
    {
        var chart = new SciChartSurface()
        {
            RenderableSeries = new RenderableSeriesSourceCollection(LineRenderSeries)
            Annotations = GraphAnnotations,
        };
    }

Here’s my View code

    <s:SciChartSurface
        Name="sciChart"
        Annotations="{s:AnnotationsBinding GraphAnnotations}"
        RenderableSeries="{s:SeriesBinding LineRenderSeries}">

It would be great if you also give example and details for X,Y Axis casting for my above ChartToImage method.

0 votes
43 views

Hi team,

How to access, enable and disable scrollbar in c# wpf?

My declaration is as of below.

            <sc:SciChartScrollbar Axis="{Binding ElementName=SciChart, Path=XAxis}" Height="18" Width="150" />

Thanks in advance.

  • Adrian Loh asked 2 weeks ago
  • last active 3 days ago
0 votes
48 views

Hi Team,

I added the PinchZoomModifier to my chart. However, when we do the gesture it does not zoom, instead, it pans the y-axis.
Here is the code:

<s:SciChartSurface s:ThemeManager.Theme="BrightSpark">
            <s:SciChartSurface.ChartModifier>
                <s:ModifierGroup>
                    <s:VerticalSliceModifier ShowTooltipOn="Never">
                        <s:VerticalSliceModifier.VerticalLines>
                            <s:VerticalLineAnnotation Style="{StaticResource SliceStyle}" X1="{Binding SelectedStartDate, Mode=TwoWay}" IsEditable="True"/>
                            <s:VerticalLineAnnotation Style="{StaticResource SliceStyle}" X1="{Binding SelectedEndDate, Mode=TwoWay}" IsEditable="True"/>
                        </s:VerticalSliceModifier.VerticalLines>
                    </s:VerticalSliceModifier>
                    <s:RubberBandXyZoomModifier ExecuteOn="MouseLeftButton"
                                                RubberBandFill="#AA34aeeb" RubberBandStroke="#AAFFFFFF"
                                                RubberBandStrokeDashArray="2 2"/>
                    <s:PinchZoomModifier XyDirection="XDirection"/>
                    <s:MouseWheelZoomModifier XyDirection="XDirection"/>
                    <s:ZoomExtentsModifier ExecuteOn="MouseDoubleClick" />
                    <s:YAxisDragModifier DragMode="Pan"/>
                    <s:XAxisDragModifier DragMode="Pan" ClipModeX="None"/>
                </s:ModifierGroup>
            </s:SciChartSurface.ChartModifier>
            <s:SciChartSurface.XAxis>
                <s:DateTimeAxis AxisTitle="Time" VisibleRange="{Binding XVisibleRange, Mode=TwoWay}"
                                TextFormatting="dd-MMM-yyyy" SubDayTextFormatting="HH:mm:ss" DrawMinorTicks="True" />
            </s:SciChartSurface.XAxis>
            <s:SciChartSurface.YAxis>
                <s:NumericAxis AxisTitle="Distance" VisibleRange="{Binding YVisibleRange, Mode=TwoWay}"/>
            </s:SciChartSurface.YAxis>
            <s:SciChartSurface.RenderableSeries>
                <s:XyScatterRenderableSeries DataSeries="{Binding Chirps}" >
                    <s:XyScatterRenderableSeries.PointMarker>
                        <s:EllipsePointMarker Width="9" Height="9" Fill="SteelBlue" Stroke="LightSteelBlue" StrokeThickness="2"/>
                    </s:XyScatterRenderableSeries.PointMarker>
                </s:XyScatterRenderableSeries>
            </s:SciChartSurface.RenderableSeries>
        </s:SciChartSurface>

Can you please help me to know what’s wrong here?

0 votes
68 views

Hello

I’m using RealTimeHeatmap, my vertion is v5.3.0.11954

I fond that when my data with maximum value below 20 (including) ,it works well;

however when my data with maximum value above 20,like 21 ,it dosen’t work. no warnings nor errors ,no map shows nor actions,just makes my program dead

I have read the example in Examples Suit, the values are OK in example, I dont know where the wrong is.

data with maximum value below 20

map shows,and works well

data with maximum value above 20,like 21

0 votes
0 answers
51 views

Hello!

I am trying to programmatically set a range for HeatmapColorPalette and attached HeatmapColorMap to min and max of my data.

Binding HeatmapColorPalette.Maximum to a property in my View Model works well. However, when I add HeatmapColorMap everything breaks, the heat map no longer responds to changes in View Model.

What am I doing wrong?

Here is my View:

<Window x:Class="SciChartHeatMap.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:SciChartHeatMap"
    xmlns:s="http://schemas.abtsoftware.co.uk/scichart"
    d:DataContext="{d:DesignInstance Type=local:HeatMapViewModel, IsDesignTimeCreatable=True}"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Grid>
    <Grid.Resources>
        <s:GradientStopsToLinearGradientBrushConverter x:Key="ColorsToLinearGradientBrushConverter"/>
    </Grid.Resources>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <s:SciChartSurface Grid.Row="0" Grid.RowSpan="2">
        <s:SciChartSurface.RenderableSeries>
        <s:FastUniformHeatmapRenderableSeries x:Name="HeatMapSeries" DataSeries="{Binding Data}" Opacity="0.9">
            <s:FastUniformHeatmapRenderableSeries.ColorMap>
                <s:HeatmapColorPalette Maximum="{Binding ColorMaximum}">
                    <s:HeatmapColorPalette.GradientStops>
                        <GradientStop Offset="0" Color="DarkBlue"/>
                        <GradientStop Offset="0.2" Color="CornflowerBlue"/>
                        <GradientStop Offset="0.4" Color="DarkGreen"/>
                        <GradientStop Offset="0.6" Color="Chartreuse"/>
                        <GradientStop Offset="0.8" Color="Yellow"/>
                        <GradientStop Offset="1" Color="Red"/>
                    </s:HeatmapColorPalette.GradientStops>
                </s:HeatmapColorPalette>
            </s:FastUniformHeatmapRenderableSeries.ColorMap>
        </s:FastUniformHeatmapRenderableSeries>
        </s:SciChartSurface.RenderableSeries>
        <s:SciChartSurface.XAxis>
            <s:NumericAxis 
                FlipCoordinates="False" 
                ScientificNotation="None" 
                AutoTicks="False"
                MajorDelta="1"
                MinorDelta="0.5"
                AxisAlignment="Top"/>
        </s:SciChartSurface.XAxis>
        <s:SciChartSurface.YAxis>
            <s:NumericAxis 
                FlipCoordinates="True" 
                ScientificNotation="None"
                AxisAlignment="Left"/>
        </s:SciChartSurface.YAxis>
    </s:SciChartSurface>

    <!-- Enabling this will break the program
    <s:HeatmapColorMap
        Grid.Column="1"
        Grid.Row="0"
        Grid.RowSpan="2"
        Margin="5,0,5,0"
        HorizontalAlignment="Right"
        VerticalAlignment="Stretch"
        DataContext="{Binding Source={x:Reference Name=HeatMapSeries}, Mode=OneWay}"
        ColorMap="{Binding ColorMap.GradientStops, Converter={StaticResource ColorsToLinearGradientBrushConverter}}"
        Maximum="{Binding ColorMap.Maximum}"
        Orientation="Vertical">
    </s:HeatmapColorMap>
    -->

    <Label 
        Grid.Row="0" 
        Grid.Column="2" 
        Content="{Binding ColorMaximum}" 
        Width="50" 
        HorizontalContentAlignment="Center"/>
    <Slider 
        Grid.Column="2" 
        Grid.Row="1" 
        Orientation="Vertical" 
        Minimum="0" 
        Maximum="10" 
        HorizontalAlignment="Center"
        Value="{Binding ColorMaximum}"/>
</Grid>

The idea in this small example is for slider to control both HeatmapColorPalette.Maximum and s:HeatmapColorMap.Maximum

The code in my View Model is pretty simple:

private double mColorMax;

public double ColorMaximum
    {
        get => mColorMax;

        set
        {
            mColorMax = value;
            OnPropertyChanged();
        }
    }

My View Model implements INotifyPropertyChanged

I will appreciate any suggestions.

Thank you in advance!

0 votes
0 answers
34 views

I’ve made a candle stick chart.
It is displayed correctly on data of 1 to 23 minute in time series.
But for data above 23 minute in time series, it is not displayed correctly.
I attach a screen shot.
I’ve looked through all the data on chart with debugging, the data are all correct.
But the candles of the chart is not consistent to the data.
For the data below 23 minute in time series, it is all right.
I could not find the problem from my code.
The following is a part of my code for setting data on the chart.
private void setChartData(SmChartData chart_data) {
try {
if (chart_data == null)
return;

        chartType = chart_data.chartType;
        chartCycle = chart_data.cycle;


        final IRange visibleRange = surface.getXAxes().get(0).getVisibleRange();

        if (getSeriesType() == SmSeriesType.CandleStick || getSeriesType() == SmSeriesType.Ohlc) {
            if (ohlcDataSeries != null) {
                ohlcDataSeries.clear();
                ohlcDataSeries.append(chart_data.getDate(), chart_data.getOpen(), chart_data.getHigh(), chart_data.getLow(), chart_data.getClose());
                visibleRange.setMinMaxDouble(0, ohlcDataSeries.getCount() - 1);


            }
        } else {
            if (xyDataSeries != null) {
                xyDataSeries.clear();
                xyDataSeries.append(chart_data.getDate(), chart_data.getClose());
                visibleRange.setMinMaxDouble(0, xyDataSeries.getCount() - 1);
            }
        }

        // 주문의 위치를 다시 찾아 준다.
        refreshOrderAnnotation();
    } catch (Exception e) {
        String msg = e.getMessage();
    }
}

What is the problem?
Please let me know why It is not display its candles correctly for some time series values.
Thank you very much.

0 votes
45 views

Hello,

I had previously commented on an existing issue, but wanted to bump here since it’s impeding development.

When adding a DataPointSelectionModifier to a chart surface containing a FastUniformHeatmapRenderableSeries with a UniformHeatmapDataSeries, an exception is thrown on a mouse drag.

The modifier is added simply with:

<s:SciChartSurface.ChartModifier>
    <s:ModifierGroup>
        <s:DataPointSelectionModifier/>
    </s:ModifierGroup>
</s:SciChartSurface.ChartModifier>

After adding this modifier and using my mouse to select a part of the heatmap, I get the following System.InvalidOperationException (stack trace below):

"Metadata for his type cannot be returned as an one-dimentional array. Please use the IPointMetadata[,] Metadata property"

I’m assuming this is happening because DataPointSelectionModifier was by default not meant for data series with 2D arrays, but I’m not sure how to follow the exception message “Please use the IPointMetadata[,] Metadata property”.

Ultimately I am trying to run a calculation on the selected subset of the heatmap. Any help would be appreciated and thanks in advance!

Stack trace:

  at SciChart.Charting.Model.DataSeries.Heatmap2DArrayDataSeries.BaseHeatmapDataSeries`3.SciChart.Charting.Model.DataSeries.IDataSeries.get_Metadata()
   at SciChart.Charting.ChartModifiers.DataPointSelectionModifier.UpdateState()
   at SciChart.Charting.ChartModifiers.DataPointSelectionModifier.KUB()
   at A.MEB.D[D](D D, Boolean I, Func`1 J)
   at SciChart.Charting.ChartModifiers.DataPointSelectionModifier.get_SelectedPointMarkers()
   at SciChart.Charting.ChartModifiers.DataPointSelectionModifier.DeselectAllPointMarkers()
   at SciChart.Charting.ChartModifiers.DataPointSelectionModifier.SelectManyPoints(Point startPoint, Point endPoint, SelectionMode selectionMode)
   at SciChart.Charting.ChartModifiers.DataPointSelectionModifier.OnModifierMouseUp(ModifierMouseArgs e)
   at SciChart.Charting.ChartModifiers.ModifierGroup.FTB(Action`2 D, ModifierEventArgsBase I)
   at SciChart.Core.Extensions.EnumerableExtensions.ForEachDo[T](IEnumerable`1 enumerable, Action`1 operation)
   at SciChart.Core.Utility.Mouse.MouseManager.GB(IPublishMouseEvents D, IReceiveMouseEvents I, MouseEventArgs J, MouseButtons M, Action`3 O)
   at SciChart.Core.Utility.Mouse.MouseManager.AEB.S(Object D, MouseButtonEventArgs I)
   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.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   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.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.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at Main.main(String[] _arg1) in ...\App.fs:line 13
  • jsacks asked 2 weeks ago
  • last active 2 weeks ago
0 votes
54 views

Thank you for your support.

This time, I’d like to know
– how to get the position data on cursor in the heatmap.
– how to draw or remove the horizontal and vertical line on cursor point in the heatmap.

Thank you.

0 votes
40 views

Via MVVM I’m binding an ObservableCollection to my chart. I’m trying to support both a rollover modifier and a tooltip modifier based on a user selection (checkboxes). On the backend I only apply the StyleKey to “TooltipStyle” when one of these checkboxes are selected. I can verify that my model is being updated correctly and that I am able to assign the “StyleKey” to each series in my collection when these values change. However the “tooltips” are never displayed. The rollover works as expected, and I see the tooltip for it, but I can never get the tooltip to display when rollover is unchecked. See anything wrong?

<!-- Modifiers (zoom, panning, tooltips, cursor) -->
        <s:SciChartSurface.ChartModifier>
            <s:ModifierGroup>
                <s:RubberBandXyZoomModifier IsAnimated="True" IsXAxisOnly="False" />
                <s:ZoomExtentsModifier ExecuteOn="MouseDoubleClick" />
                <s:ZoomPanModifier ExecuteOn="MouseRightButton" />
                <s:MouseWheelZoomModifier ActionType="Zoom" XyDirection="XYDirection" />
                <s:XAxisDragModifier DragMode="Scale" />
                <s:YAxisDragModifier DragMode="Scale" />
                <s:TooltipModifier x:Name="ChartTooltip" IsEnabled="{Binding Path=ShowTooltips}" />
                <s:RolloverModifier IsEnabled="{Binding Path=SnapToPoints}" />
                <s:CursorModifier x:Name="ChartCursor" IsEnabled="False" ShowAxisLabels="True" Foreground="Red" />
            </s:ModifierGroup>
        </s:SciChartSurface.ChartModifier>

My styles are defined below. When I want to see either the tooltips or the rollover I assign the StyleKey to “TooltipStyle” and when neither of them is selected I assign the StyleKey to “NoTooltipStyle”.

            <!-- Template for regular tooltips -->
        <DataTemplate x:Key="TooltipDataTemplate" DataType="{x:Type s:XySeriesInfo}">
            <StackPanel Orientation="Vertical">
                <TextBlock Foreground="White">
                        <Run Text="Distance: " />
                        <Run Text="{Binding FormattedXValue, Mode=OneTime}" />
                        <Run Text=" cm" />
                </TextBlock>
                <TextBlock Foreground="White">
                        <Run Text="Relative dose: " />
                        <Run Text="{Binding FormattedYValue, Mode=OneTime}" />
                    <Run Text=" %" />
                </TextBlock>
            </StackPanel>
        </DataTemplate>

        <!-- Hover template for snap -->
        <DataTemplate x:Key="SnapDataTemplate" DataType="{x:Type s:XySeriesInfo}">
            <StackPanel Orientation="Vertical">
                <TextBlock Foreground="White">
                        <Run Text="Distance: " />
                        <Run Text="{Binding FormattedXValue, Mode=OneTime}" />
                        <Run Text=" cm" />
                </TextBlock>
                <TextBlock Foreground="White">
                        <Run Text="Relative dose: " />
                        <Run Text="{Binding FormattedYValue, Mode=OneTime}" />
                    <Run Text=" %" />
                </TextBlock>
            </StackPanel>
        </DataTemplate>

        <!-- Standard series with snap tooltip and regular tooltip -->
        <Style TargetType="{x:Type s:FastLineRenderableSeries}" x:Key="TooltipStyle">
            <Setter Property="s:TooltipModifier.TooltipTemplate" Value="{StaticResource TooltipDataTemplate}" />
            <Setter Property="s:SeriesValueModifier.IncludeSeries" Value="False" />
            <Setter Property="s:RolloverModifier.TooltipTemplate" Value="{StaticResource SnapDataTemplate}" />
        </Style>

        <!-- Standard series with no tooltip -->
        <Style TargetType="{x:Type s:FastLineRenderableSeries}" x:Key="NoTooltipStyle">
            <Setter Property="s:TooltipModifier.IncludeSeries" Value="False" />
            <Setter Property="s:SeriesValueModifier.IncludeSeries" Value="False" />
            <Setter Property="s:RolloverModifier.IncludeSeries" Value="False" /> 
        </Style>
0 votes
49 views

Dear SciChart Team:

My application is a time chart, the X axis is TimeSpan, the Y axis is a value, I want to append points with a fixed X axis length, but my current practice is to fix the number of points.

For example:
TimeSpan is fixed at ten seconds. After points is appended, if TimeSpan exceeds ten seconds, the first point is deleted, and the latest point are retained.

  • Johnny Yeh asked 2 weeks ago
  • last active 2 weeks ago
0 votes
52 views

Dear SciChart Team:

An exception occurs when I drag the X-axis to change the scale via the XAxisDragModifier (as shown in the attached image).
This happens when the X-axis scale is dragged out of view.
Is there any reason for this exception to occur? How can I rule out?

  • Johnny Yeh asked 2 weeks ago
  • last active 2 weeks ago
0 votes
55 views

Dear SciChart Team:

I want to extend the chart to fit the size to match DataRange and have two operational scenarios:
1. Call SciChartSurface.ZoomExtents()
2. Double click on the canvas with ZoomExtentsModifier

When I change the Y-axis(X-axis) scale through the YAxisDragModifier(XAxisDragModifier) and append points to the curve, and then execute ZoomExtents(), the chart does not match the DataRange.

How do I zoom extents the chart to match DataRange?

  • Johnny Yeh asked 2 weeks ago
  • last active 2 weeks ago
0 votes
46 views

I am not able to find the data point corresponding to current mouse position on heatmap series PreviewMouseMove event.

Here is my code,

private void Contour_PreviewMouseMove(object sender, MouseEventArgs e)
    {
        var xCalc = Contour.RenderableSeries[0].XAxis.GetCurrentCoordinateCalculator();
        var yCalc = Contour.RenderableSeries[0].YAxis.GetCurrentCoordinateCalculator();
        Point mousePoint = e.GetPosition(((SciChartSurface)sender).ModifierSurface as UIElement);
        double peakXCordInfoValue = xCalc.GetDataValue(mousePoint.X);
        double peakYCordInfoValue = yCalc.GetDataValue(mousePoint.Y);
    }

“Contour” is my SciChart object. When I debugged to find out my X and Y axis data points and compared them with what I find above in peakXCordInfoValue, then they don’t match. Ideally if I am finding the data point then it should match exactly.

I also tried to find index

var index = Contour.RenderableSeries[0].DataSeries.FindIndex(yDataForCoordinate, SearchMode.Nearest);

But it gives error “Operation is not valid due to the current state of the object.”
I also tried cursormodifier and its OnModifierMouseMove event, but it gives same error.

For Example: The actual data point on Y axis is 280.774501562118, and the above code returns 280.523009343212

  • Anil Soman asked 3 weeks ago
  • last active 2 weeks ago
0 votes
55 views

Hi SciChart!

I am evaluating the trial for possible use in a major project within our organisation.

We have decided to use the System.Reactive reactive extensions as our event handler and I have reached the point where I have an IObservableCollection (instantiated as ObservableCollectionExtended) of where T can be any type containing X and Y values.

My question is, is it possible to Bind a scichart Line Series on to such a collection in order to update via the reactivestream updates?

I’d rather not have to copy points into yet another collection type if possible.

Note: I looked at the nuget for scichart wpf reactive library and that seems to bind on to rx 2.2.5 whereas I’m using system.reactive 4.1.6

Any direction for a new-to-reactive developer would be greatly received.

Greg

0 votes
0 answers
43 views

Hey all,

is there a way on iOS to export a SciChartSurface to a vector format in order to embed the exported chart into a PDF document? Right now the only thing I can find in the Documentation is exportToUIImage(). If not – any ideas for a workaround until such feature is implemented?

0 votes
61 views

Hello Team,

I am evaluating Sci Chart for using in our production applications. I am creating a POC for the same if it fits our requirements.

I have created a scattered chart successfully. Our next requirement is to select a part of the chart, basically, like data from this date to this date. I was trying to explore VerticalSlice Modifier for it. My purpose was that the user will place the sliders on the start date and end date and we will get those values. Can you tell me if this approach is correct or suggest a different technique, annotation or marker, any other modifier to select data between two dates?

<Grid Grid.Row="1">
        <s:SciChartSurface s:ThemeManager.Theme="BrightSpark">
            <s:SciChartSurface.ChartModifier>
                <s:ModifierGroup>
                    <s:VerticalSliceModifier Name="sliceModifier">
                        <s:VerticalSliceModifier.VerticalLines>
                            <s:VerticalLineAnnotation X1="{Binding SelectedStartDate, Mode=TwoWay}" IsEditable="True"/>
                            <s:VerticalLineAnnotation X1="{Binding SelectedEndDate, Mode=TwoWay}" IsEditable="True"/>
                        </s:VerticalSliceModifier.VerticalLines>
                    </s:VerticalSliceModifier>
                </s:ModifierGroup>
            </s:SciChartSurface.ChartModifier>
            <s:SciChartSurface.XAxis>
                <s:DateTimeAxis AxisTitle="Number of Samples (per Series)"/>
            </s:SciChartSurface.XAxis>
            <s:SciChartSurface.YAxis>
                <s:NumericAxis AxisTitle="Value"/>
            </s:SciChartSurface.YAxis>
            <s:SciChartSurface.RenderableSeries>
                <s:XyScatterRenderableSeries x:Name="scatterSeries" Stroke="OrangeRed" DataSeries="{Binding Chirps}">
                    <s:XyScatterRenderableSeries.PointMarker>
                        <s:EllipsePointMarker Width="9" Height="9" Fill="SteelBlue" Stroke="LightSteelBlue" StrokeThickness="2"/>
                    </s:XyScatterRenderableSeries.PointMarker>
                </s:XyScatterRenderableSeries>
            </s:SciChartSurface.RenderableSeries>
        </s:SciChartSurface>
    </Grid>

Thanks for the help and support

0 votes
70 views

Hi,

I tried submitting a priority support ticket but I always get a 500 error after submitting.

I have an issue with a realtime graph tick label. The “zero” label sometimes changes to a strange value (-5.5511E-17) for no reason.

This only happens when the graph is running in a 32bit process, I can’t replicate it when running at 64bit.

Some info:

No operations on the labels in the code-behind

Data is stored in a XyDataSeries<double,double>


The issue is visible in the video and the image called “G5”. Image “Hashes” shows the alternative text formatting option of “#.#####” which doesn’t show a “0” value at all.
I can write a workaround, but I would like to know if this is a known issue or there is something wrong with my settings.

Video here: https://youtu.be/OGaAOVe9Yew

Thank you

0 votes
68 views

Hi,

I am using .NET 4.0 and SciChart v4.2.6.11205.

I have a viewmodel with the following property:
public AnnotationCollection Annotations { get; set; }

I have tried binding to the Annotations property from my view with the following code but without success:
Annotations=”{Binding Annotations}”
Annotations=”{Binding Path=Annotations}”

How to I bind to an AnnotationsCollection with SciChart 4.0?

Do you have an example you can send me.

Regards,
peter.crowley@snapon.com

0 votes
0 answers
61 views

Hello,

I’m trying to drag several VerticalLineAnnotationViewModel simultaneously. So if I drag one all other should move the same delta.
I subscribed the “DragDelta”-Event for each VerticalLineAnnotationViewModel. My problem is that “AnnotationDragDeltaEventArgs” seems in pixel unit and I didn’t find a CoordinateCalculator for the NumericAxisViewModel. Is there any solution to convert the dragged delta to dataValue or axis coordinates so I could just add the delta to the X1 property of my VerticalLineAnnotationViewModels?

0 votes
0 answers
67 views

Hello,

I am using mountain chart to draw some data. First time open the chart screen, the graph plots properly. If we do scroll forward the graph x-axis last label is missing. If we do scroll backward the graph x-axis first label is missing.

Here I have attached working .swift file.

Note: We are using mountain chart with multiple line series. We are not using stacked mountain chart.

0 votes
76 views

Hello,

I am creating a LineAnnotation using Annotation Modifier.

In AnnotationCreated event, I need the Hit Test Info of the start and end Points of annotation i.e. annotation.X1,Y1,X2,Y2 points in order to find out the series name and other information(similar to HitTestAPI example in examples suit).

I also need to verify if they are lying on a series or not.

The problem here is series.HitTest() accepts a raw point which I am unable to get from annotation.

Is there any way to do this.

0 votes
98 views

Hi,

we have a graph which it’s x axis visible range changed when the graph draw until the max (as a travel graph)
we also have logic for each serie a minimum\maximum range, outside of this range the color should be red
so, we use the ExtremePointMarkerPaletteProvider and set for each value the suttible color in the colors list.

our problem is when the graph visible range changed – the serie points is draw correctly but it’s color is not match.
the colors are stay the same as they was before the range changed.
we looked at the colors list and YValues list – the value and the color on each index was match.
the problem is only in the view.

also, after some time it’s fixed, we don’t know what cause it to be fixed…

Thanks

0 votes
67 views

Hi,

every time we update the chart, the lines jump around and it seems we need to have a delay before calling zoomExtents() for it to work properly – but even with 500ms delay, zoomExtents still does not work always (see 0:27 of below video- what helped was manually moving the chart). We want a smooth transition when changing timescale. My guess is we are misusing the library somehow, but after thorough reading through the docs we could still not fix this.

Here is a video showcasing this problem:

https://screencast-o-matic.com/watch/cqiUjxOkV6

Here is the code that updates the surface. Basically we clear the Renderable Series of surface before we show new data. Full code where we make charts (on each update) is seen here:

// OHLC Chart Data
ohlcData.append(ohlcSeries.getDateData(), ohlcSeries.getOpenData(), ohlcSeries.getHighData(), ohlcSeries.getLowData(), ohlcSeries.getCloseData());

// Bollinger Upper Band
XyDataSeries<Date, Double> bollUpper = sciChartBuilder.newXyDataSeries(Date.class, Double.class).withSeriesName("BBU").build();
bollUpper.append(ohlcSeries.getDateData(), upperBB_data);
BaseRenderableSeries seriesBBU = sciChartBuilder.newLineSeries().withDataSeries(bollUpper).withStrokeStyle(Color.rgb(70,130,180), 1f).withYAxisId(PRICES).build();
seriesBBU.setClipToBounds(true);

//* ... some more lines and indicators built here ... */

// clear surface on update
if(!surfaceOhlc.getRenderableSeries().isEmpty())
    surfaceOhlc.getRenderableSeries().clear(); 

// create series
seriesMA.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_ma", true));
seriesEMA.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_ema", true));
seriesBBU.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_boll", true));
seriesBBL.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_boll", true));
seriesBBM.setIsVisible(SharedPreferencesInstance.getBoolean("advanced_chart_show_boll", true));

surfaceOhlc.getRenderableSeries().add(sciChartBuilder.newCandlestickSeries().withDataSeries(ohlcData).withSeriesInfoProvider(new CustomOHLCSeriesInfoProvider()).withYAxisId(PRICES).build()); // todo : setClipToRounds(true)
surfaceOhlc.getRenderableSeries().add(seriesBBU);
surfaceOhlc.getRenderableSeries().add(seriesBBL);
surfaceOhlc.getRenderableSeries().add(seriesBBM);
surfaceOhlc.getRenderableSeries().add(seriesEMA);
surfaceOhlc.getRenderableSeries().add(seriesMA);

surfaceOhlc.getAnnotations().add(annPrice);
  • Primoz asked 4 weeks ago
  • last active 3 weeks ago
0 votes
154 views

Hello,

I am adding a line annotation using annotation modifier, and it works perfectly fine.

But the problem is, I want to restrict the creation when the start and end points of annotation are not part of a line. I don’t care if they are not part of dataseries points, user can select any point on the line.

I am unable to find a way to verify this. Can you look into this.

0 votes
0 answers
84 views

I am creating point data series using SCIXyScatterRenderableSeries.
I need to tap on specific data points and display pop over or some view on top of it. Pop over provides information regarding that point.

How can I implement that in iOS.

0 votes
0 answers
80 views

Hello.
I am working on a stock chart with socket.
When received a new data, it is added to the chart,
but the labels of xAxis do not update their datetimes.
And I touch the surface of the chart,
then the labels of xAxis are updated.
What is wrong?
I attach some parts of my code.
Please let me know the correct way that I can update automatically the labels of x axis when a new data is added to.

The function for the x Axis creation
void setYAxis() {
yAxis = sciChartBuilder.newNumericAxis().withGrowBy(0d, 0.1d).withAxisAlignment(AxisAlignment.Right).withAutoRangeMode(AutoRange.Always).build();

    PenStyle tickStyle = new SolidPenStyle(_chartSetting.tickStyle, true, 2, null);
    BrushStyle bandStyle = new SolidBrushStyle(_chartSetting.bandStyle);
    PenStyle gridlineStyle2 = new SolidPenStyle(_chartSetting.gridlineStyle2, true, 2, null);
    // PenStyle gridlineStyle = new SolidPenStyle(_chartSetting.gridlineStyle, true, 1, new float[]{10, 10});
    PenStyle gridlineStyle = new SolidPenStyle(_chartSetting.gridlineStyle, true, 1, null);

    yAxis.setAxisBandsStyle(bandStyle);
    yAxis.setDrawMajorBands(true);
    //yAxis.setMinorTickLineStyle(tickStyle);
    yAxis.setMajorTickLineStyle(tickStyle);


    yAxis.setMajorGridLineStyle(gridlineStyle);
    yAxis.setMinorGridLineStyle(gridlineStyle2);
    String yFormat = "%.2f";
    if (chartData != null) {
        SmSymbolManager symbolManager = SmSymbolManager.getInstance();
        SmSymbol symbol = symbolManager.findSymbol(chartData.symbolCode);
        yFormat = "%.";
        if (symbol != null)
            yFormat += Integer.toString(symbol.decimal);
        else
            yFormat += Integer.toString(2);
        yFormat += "f";
    }
    yAxis.setLabelProvider(new NumericLabelProviderEx(yFormat));

    Collections.addAll(surface.getYAxes(), yAxis);

    if (_style == "mock_left" || _style == "mock_right") {
        yAxis.setVisibility(View.GONE);
    }

    if (_style == "mock_main") {
        yAxis.setVisibility(View.VISIBLE);
        yAxis.setAxisAlignment(AxisAlignment.Left);
    }
}

The callback function for the new data arrival.
private synchronized Action1 onNewPrice() {
return new Action1() {
@Override
public void execute(final PriceBar price) {
if (symbolCode.compareTo(price.getSymbolCode()) != 0 ||
lastPrice == null ||
lastPrice.getDate() == price.getDate())
return;

            DateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
            String strDate = dateFormat.format(price.getDate());

            //Log.d("TAG", "onNewPrice:  -> " + price.getSymbolCode() + "::" + strDate);

            if (getSeriesType() == SmSeriesType.CandleStick || getSeriesType() == SmSeriesType.Ohlc) {
                ((IOhlcDataSeries) dataSeries).append(price.getDate(), price.getOpen(), price.getHigh(), price.getLow(), price.getClose());
            } else {
                ((IXyDataSeries) dataSeries).append(price.getDate(), price.getClose());
            }

            IRange dataRange = xAxis.getDataRange();

            final IRange visibleRange = surface.getXAxes().get(0).getVisibleRange();
            if (visibleRange.getMaxAsDouble() > dataSeries.getCount()) {
                visibleRange.setMinMaxDouble(visibleRange.getMinAsDouble() + 1, visibleRange.getMaxAsDouble() + 1);
                xAxis.updateAxisMeasurements();
            }

            getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    ohlcAxisMarker.setBackgroundColor(price.getClose() >= price.getOpen() ? STOKE_UP_COLOR : STROKE_DOWN_COLOR);
                }
            });

            //smaAxisMarker.setY1(smaLastValue);
            ohlcAxisMarker.setY1(price.getClose());

            lastPrice = price;
        }
    };
}
0 votes
104 views

I want to made custom verticalLine extension which drag to series point. I use MVVM pattern. I made a custom VerticalLine from VerticalLineAnnotationViewModel. I set X1 value from model then the position of line chaning, then I drag the line with mouse. I get the earlier value of X1 in the DragSarted event, not that value which I set in model.
How can I gat correct value from DragStart?
I found similar problem in forum https://www.scichart.com/questions/wpf/problem-setting-a-vertical-line-annotation-position-in-mvvm

  • Zsolt Huse asked 1 month ago
  • last active 4 weeks ago
0 votes
102 views

I made wpf project with MVVM. I added LineRenderableSeriesViewModel to the model. SelectedSeriesStyle contains StrokeThickness=3 property. When I click on series, the SeriesSelectionModifier set correctly the line thicknes, but when I set IsSelected property in model, the seriesline thickness not changing. The stroke and PointMarkerTemplate properties work correctly.
Why not changing StrokeThickness property by model?

  • Zsolt Huse asked 1 month ago
  • last active 4 weeks ago
0 votes
107 views

Hi,

this is my scenario: I want to create a “band annotation”, a stretched box with some text.
I can use Text annotation but I want that annotation stretch in some directions.

In example, X1 = extreme left (as X1=0 in relative mode), X2 = Some X Axis Value, Y1 = Some Y Axis Value, Y2= Some Y Axis Value. This is a band without definite X1 value.

Or: X1 = Some axis value, Y1 = Some Axis Value, X2 = extreme right, Y2=Extreme Bottom, this is a rectangle that stretch to the bottom right corner.

At the end I must place a text in the center of box.

Can you help me?

Thank’s
marc.

0 votes
118 views

hello, i have question is how to draw minor label.
When i use logaxis and zoom to high precision, yaxis have only minor point.
it is not draw any label.

0 votes
102 views

I want to develop a rollover in my IOS application, like the example of Using RolloverModifier. However, the axis label & tooltip display of rollover in this example is static, I want to customize a the the label & tooltip that I want, .xib file or coding to develop also fine.

Can anyone help or give suggestions to my problems? Thanks.

  • Gumbo F asked 1 month ago
  • last active 1 month ago
0 votes
118 views

I was looking at the example given at this link for NonUniformHeatmapDataSeries in SciChart. In this example, the width and height of heatmap is given as h=4 and w=7. As I understand h is for Y axis and w is for X axis and data[,] is for Z axis. However, the counts in actual data filled for these axis are not matching wight h and w.

var xRangeMapping = new int[] { 0, 10, 20, 26, 36, 60, 72, 84 };   // 8 points for w
var yRangeMapping = new int[] { 100, 250, 390, 410, 600 };         // 5 points for h

What is the purpose of extra points added at first place (0 and 100)? Are these required to set the starting point for both axis?

Here is the code given at above link:

int w = 7, h = 4;
var data = new double[h, w];
double maxValue = double.MinValue;
for (int x = 0; x < w; x++)
    for (int y = 0; y < h; y++)
    {
        data[y, x] = 3.5 * ((h - y) * (w - x));
        maxValue = Math.Max(maxValue, data[y,x]);
    }
var xRangeMapping = new int[] { 0, 10, 20, 26, 36, 60, 72, 84 };
var yRangeMapping = new int[] { 100, 250, 390, 410, 600 };
var heatmapDataSeries = NonUniformHeatmapDataSeries<int, int, double>(data, i => xRangeMapping[i], i => yRangeMapping[i]);

// Apply the Heatmap DataSeries to a FastNonUniformheatmapRenderableSeries
var heatmapRenderableSeries = new FastUniformHeatmapRenderableSeries()
 {      
     ColorMap = new HeatmapColorPalette()
    {
        Maximum = maxValue,
        Minimum = 0,
        GradientStops = // exercise left to the reader
    }
 };
  • Anil Soman asked 1 month ago
  • last active 1 month ago
0 votes
0 answers
107 views

How to make chart axis (date axis in my case) to move with scrolling?

Because currently labels staying on it’s positions and just refreshing its values.

let xAxis = SCIDateTimeAxis()
xAxis.axisId = ChartWrapper.SURFACE_MAIN_X_AXIS_ID
xAxis.autoRange = .never
xAxis.visibleRange = sharedXRange
xAxis.style.drawMajorBands = false
xAxis.style.drawMajorTicks = false
xAxis.style.drawMinorTicks = false
xAxis.style.drawMinorGridLines = true
xAxis.textFormatting = "HH:mm:ss"
xAxs.style.drawLabels = true

Best regards, Vadim

0 votes
127 views

Hello there

I’m looking for any solution to work with milliseconds timestamps (like that one 1563448997279), but haven’t found anything yet.

Is it possible to handle them without losing precision?

Solutions like drop milliseconds not working for me.

One more question to developers:
What is the difference in SCIDataType_DateTime and SCIDataType_SwiftDateTime?

In source code i only found this:
@field SCIDataType_DateTime – NSDate

0 votes
103 views

We have a graph surface with some point markers on it and we want to show a custom tooltip every time the user taps on a point marker. So far I’ve used a UITapGestureRecognizer, convert the touchpoint in the chart frame and for each of the renderable series perform a HitTestAtX with a radius (I’ve tried 1, 5 and 30) but it always returns true, even if I tap on an area where there’s a gap in the chart. Here’s some sample code:

SCIHitTestInfo hitTestInfo = renderableSeries.HitTestProvider.HitTestInterpolateModeAtX(touchPoint.X, touchPoint.Y, 30, renderableSeries.CurrentRenderPassData);

if (hitTestInfo.match)
{
       Console.WriteLine($"Tapped {hitTestInfo.xValue} {hitTestInfo.yValue} with index {hitTestInfo.index} of the series {renderableSeries.DataSeries.SeriesName}");

       var elementSeries = Model.BottomRightLegendList.FirstOrDefault(tup => tup.DataSeries.SeriesName == renderableSeries.DataSeries.SeriesName);

       var element = elementSeries.GraphElement;

       if (element != null)
       {
            matchedElements.Add(element);
       }
}

Why is the “match” property always true, even if there are no Point Markers in the radius?

0 votes
0 answers
86 views

Hi

I have a SCIFastLineRenderableSeries backed by data in SCIXyDataSeries.

I setup FIFO to 300 (this just a number I may increase, but it stores 30+ seconds of data)

x data is time stamp.

each time I have new data, I set a new visibleRange to show about 30 seconds of data on screen

xAxis.visibleRange = [[SCIDoubleRange alloc] initWithMin:SCIGeneric(secondSinceStart-31) Max:SCIGeneric(secondSinceStart)];

So this will scroll along showing latest 30 seconds of data. And that’s great.

But I want to scroll to the left to view the older data. because of the visibleRange is set I am not able to touch the axis labels and do anything)

how do I set the visibleRange or maybe not set it, so I can enable the scroll.

Here is the drag modifier I use , but I think it does not do anything either because of the visibleRange
SCIXAxisDragModifier * xAxisDragmodifier = [SCIXAxisDragModifier new];
xAxisDragmodifier.dragMode = SCIAxisDragMode_Pan;
xAxisDragmodifier.clipModeX = SCIClipMode_None;

Thanks

0 votes
120 views

I am using a custom CursorModifier class in my WPF code. I have created a class inherited from CursorModifier for this purpose. Now I want to apply cross-hair cursor style to my chart. The style in XAML is not getting applied at all. However, when I use the CursorModifier directly (instead of custom modifier class) in XAML, then it applies.

If I changed the TargetType to “loca:MyCursorModifier”, then it gives error “The memeber StrokeThickness is not recognized” & “The “memeber Stroke is not recognized”.

<UserControl.Resources>
    <Style x:Key="CrossLineStyle" TargetType="Line">
        <Setter Property="StrokeThickness" Value="1" />
        <Setter Property="Stroke" Value="Black " />
    </Style>
</UserControl.Resources>

<local:MyCursorModifier ShowTooltip="False" ShowTooltipOn="Never" ShowAxisLabels="False" SourceMode="AllSeries" LineOverlayStyle="{StaticResource CursorLineStyle}"/>
  • Anil Soman asked 1 month ago
  • last active 1 month ago
0 votes
96 views

i want to implement a custom modifier to track the users touch, similar to rollover but without displaying a view

I tried to do this by implementing SCIGestureModifier and overriding all the onTouches methods, but – no matter the user behaviour – the modifier will always receive an onTouchesCancelled event after about a second and receive no more of these events after that.

What does work is implement onPanGesture to actually track all the user’s movement but i don’t see any way of how you would receive a touch up event this way (which i do need)

Is there any fundamental misunderstanding on how this should work on my side?

0 votes
126 views

Hi there!

I am relatively new to C# and I am currently trying to plot a network dependency graph in my wpf application. This is something like a hierarchical edge bundling graph. https://vega.github.io/vega/examples/edge-bundling/

Are there any good plotting libraries out there that can help me achieve this? I have looked into Scichart and it does not seem to be able to do it.

0 votes
0 answers
80 views

I am using SCIStackedMountainRenderableSeries in my iOS application, I am always getting chart background as black grids, I want to make it clear or white background. How can I do that?

I have tried

sciChartSurface?.backgroundColor = UIColor.white
sciChartSurface?.applyThemeProvider(nil)

That did not worked, Please help.

0 votes
0 answers
106 views

So for both SCIZoomPanModifier and SCIXAxisDragModifier you can set a clip mode, that will cause the graph to not zoom in if you try to scroll past the edges.

This is not possible for the y-axis however, so everytime anyone scrolls up or down to far, the graph zooms in, which is not useful to anyone ever

Is there any way to change this behaviour at all?

Thanks in advance

Showing 1 - 50 of 3k results