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

0 votes
0 answers
13 views

Hi,

I want to know if there is a way to retreive data from Scichart Series (IXyDataSeries<double, double>), I display a waveform from an array of dots <x,y> ( x is time, y is value).

Sample rate (time distance between X values) can vary.

My goal is, once the waveform is displayed, to read it again and create an array with the same sample rate (time distance between X values should be the same).

This would give me points that may be different from the original array. I’m okay with it as long as the sample rate is the same.

Is there a way to do that?

Thanks

0 votes
15 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
0 answers
22 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

0 votes
0 answers
59 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
57 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

0 votes
78 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
64 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()
0 votes
62 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
66 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
61 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
68 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 1 week ago
  • last active 1 week ago
0 votes
83 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 1 week ago
  • last active 1 week ago
0 votes
73 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 2 weeks ago
  • last active 1 week ago
0 votes
60 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 2 weeks ago
  • last active 2 weeks ago
0 votes
73 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?

0 votes
68 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
62 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
70 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
123 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
111 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?

0 votes
117 views

Hello Sci Chart support!

I am attempting to apply a low pass filter to a FIFO chart. I have implemented the FilterAll() function successfully but I was wondering if there are examples on how to override the FilterOnAppend() function or how to make FilterAll() work for a FIFO chart.

Currently, when calling the FilterAll() method the program throws an invalid operation exception:

System.InvalidOperationException: ‘Data has been Appended to a DataSeries which is unsorted in the X-Direction. Unsorted data can have severe performance implications in SciChart.
For maximum performance, please double-check that you are only inserting sorted data to SciChart. Alternatively, to disable this warning and allow unsorted data, please set DataSeries.AcceptsUnsortedData = true. For more info see Performance Tips and Tricks at https://www.scichart.com/documentation/v4.x/webframe.html#Performance_Tips_&_Tricks.html

I do not want to allow unsorted data because I know it is not a good practice and even if allowing unsorted data, the chart stops updating after a few seconds.

It may be worth knowing that I am sampling data from a National Instruments’ data acquisition board. Sci Chart is helping me display this data, but I would like to display the filtered data as it is being queued.

If you could help me with this matter I would appreciate it!
Best,
Paola

0 votes
80 views

hello, i have an exception.
see the try catch

public class CategoryDateTimeAxisEx : CategoryDateTimeAxis
{
    public override IComparable GetDataValue(double pixelCoordinate)
    {
        var dataValue = DateTime.MinValue;

        var coordCalc = GetCurrentCoordinateCalculator();
        if (coordCalc != null)
        {
            // Returns the index of a dataPoint, need to transform it to a dataValue
            var value = coordCalc.GetDataValue(pixelCoordinate);

            var catCoordCalc = coordCalc as ICategoryCoordinateCalculator<DateTime>;
            try
            {
                dataValue = catCoordCalc?.TransformIndexToData((int)value) ?? value.ToDateTime();
            }
            catch (Exception e)
            {
                 //TransformIndexToData() throw exception because catCoordCalc.BaseXValues is null,
                 //it only happend when my mouse over SciSurface and move faster on app startup
            } 
        }
        return dataValue;
    }
}

I use this class and override function now, it can work .but i don’t like this way.

0 votes
118 views

We have a chart where we’re loading data in every second. If you don’t zoom in, the Overview/scrollbar control that we have beneath the chart stays to the right and keeps showing the most recent. However, once you zoom in and then call ZoomExtents() on the chart, it will zoom out but the Overview/scrollbar doesn’t go back to showing the latest; the max is stuck at whatever the time was when you called the ZoomExtents().

If I have the ZoomExtentsModifier on a chart and double-click, it does what I want so that’s what I’m trying to replicate without having the modifier enabled.

0 votes
145 views

The following code works just fine in SciChart 3.3, 3.6. Since 4.2.5 up to 6.0 it does not show a line any more, even if you pinch zoom into the chart.

Width values of 1,2,3,4 do not work regardless of screen resolution.

I used the same XAML in 3.3.0 and 4.2.5 – screenshots in attachment. I cannot access 3.6 any more (separate forum post), however I have an old version of my customer project and it worked there too. This seems to have become broken since 4.x.

        <SciChart:SciChartSurface.Annotations>
              <SciChart:VerticalLineAnnotation 
                      X1="{Binding Dummy}"
                      Width="1">
                  <SciChart:AnnotationLabel Text="{Binding DummyText}"/>
              </SciChart:VerticalLineAnnotation>
          </SciChart:SciChartSurface.Annotations>
  
0 votes
0 answers
114 views

I have a license for SciChart 5.1 and 3.6. I cannot access the 3.6 versions any more from NuGet, they seem to have disappeared.

0 votes
152 views

I have a license for SciChart 5.1 and 3.6. I cannot access the 3.6 versions any more from NuGet, they seem to have disappeared.

0 votes
0 answers
131 views

Is there a way to add grip handles to the left-center and right-center of a box annotation. By default, grip handles are only created on the four corners of the box. See the attached image. Currently I am creating my annotations in the code behind and view models, not XAML.

If a composite annotation needs to be created, that is fine.

0 votes
117 views

Hi,

Do you have any examples for using API UniformHeatmapDataSeries.Append(IEnumerable x, params IEnumerable[] yValues);?

This is to plot heat map chart

Thanks
Deepak

  • deepak b asked 4 weeks ago
  • last active 4 weeks ago
0 votes
0 answers
163 views

Hello.

I am learning how to use SciChart with a tutorial.
Before zooming, the X-axis is aligned, but after zooming, it is shifted.
Why is this?
Is there a way to prevent this?

Thank you.

0 votes
136 views

Hi,
My requirement is to plot only half of uniform Heat map (1st triangle) chart as shown in attached image. So, is it possible to plot only 1st triangle just by passing input data as 1D array to UniformHeatmapDataSeries? . Does Scichart currently supports this feature?

Thanks
Deepak

  • deepak b asked 4 weeks ago
  • last active 4 weeks ago
0 votes
125 views

Is there a way to remove space in xydataseries? Lets say I have a datetime,double xydataseries. If there is a gap in time it shows on chart. Is there an easy way to remove that? I know I could make it double, double and just increment a value for the first. Problem is that I would like to preserve the datetime to display in a rollover modifier.

  • John asked 4 weeks ago
  • last active 4 weeks ago
0 votes
119 views

Hi! I need to draw lines on the ohlc chart programmatically. I attached an image to make it more clear. I looked at the examples and didn’t find a way to do this. The most appropriate example is a spline, but it also does not fit. I’m not sure that it is possible to make custom dataseries. Сould you suggest a way to do this?

0 votes
0 answers
116 views

Hi,

I am using SciChart to display a lot of sensor data. It’s a overview-detail based view where the user select a range on an overview chart to display sensor values in a detail chart.

I have SciChartScrollbar that is bound to a DateTimeAxis. The axis has a DataRange of a long time (eg. 1 year). I use the VisibleRange to select a small subset to display in the detailed chart. This all works perfectly fine.

Now I would like to restrict the SciChartScrollbar to a maximum selectable VisibleRange of eg. 30 days.
I know it is possible to set the VisibleRangeLimit of the Axis, but this sets a Range and not a duration.

Is is possible to restrict the SciChartScrollbar or its DateTimeAxis to a maximum visible range duration?

0 votes
127 views

I want to change the WorldDimensions of a SciChart3DSurface through bindings when the data in the graph changes.
Currently i try to bind to a Vector3 object that has been initialized but i get a the following exception upon startup

Object reference not set to an instance of an object.

SciChart.Charting3D :
at SciChart.Charting3D.SciChart3DSurface.AttachCamera(ICameraController camera)
at SciChart.Charting3D.SciChart3DSurface.AttachChildren()
at SciChart.Charting3D.SciChart3DSurface.OnSciChartSurfaceLoaded()

0 votes
141 views

I tried to install scichart using .exe on offline pc(can’t connect internet, win7/vs2015).
but it did’t finish and message below poped up.
I think offline environment is problem. so can you guide how to install on offline pc?

[There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. ]

0 votes
128 views

Hi,

I have a usercontrol which has SCI chart controls. This usercontrol is added and removed from a parent Window based on few business logic.
While adding the control i get the following error.

Error: Element already has a logical parent. It must be detached from the old parent before it is attached to a new one.

In one of the forum it was mentioned that this was a known issue and was rectified. Please let me know on a workaround to overcome this issue.

Thanks,
Deepak

0 votes
173 views

To whom this may concern:

I am following up to an issue that I posted a few years ago: https://www.scichart.com/questions/wpf/resizing-custom-annotations

I’ve attached a sample project that outlines what I am trying to accomplish. It is a simple scatter chart with randomized points in which I am trying to draw a rotatable ellipse annotation around the points.

The annotation inherits the “BoxAnnotation” class and replaces it’s template with an ellipse that is shaped to within the bounds of the annotation. This ellipse can be rotated by dragging the ellipse with the right-click button of the mouse. Upon doing so, in order to ensure the ellipse still maintains its shape when zooming in, the ellipse is converted to a geometric path. (Shown when the color of the ellipse changes from red to green.) Like this, when re-sizing the ellipse, it maintains its shape. After re-sizing, if the user wants to rotate the ellipse again, the original Ellipse UIElement re-surfaces and the Path UIElement is hidden. The user can then rotate the ellipse, which is in turn rendered back to a Path UIElement once again. The bounds of the annotation are modified to ensure the ellipse and its geometric path maintains its shape when switching between the Ellipse and the Path UIElements.

The issue is when re-sizing the annotation, and then attempting to rotate the ellipse again, the ellipse is clipped by the bounds of the annotation, even though “ClipToBounds” is set to false (in the code-behind). Unfortunately, I can’t find a pattern for which this occurs, and I have no solution to this issue. Examples of the clipped and non-clipped ellipses are shown in the attached images.

Hopefully the attached project is easy to understand. Can you please advise?

Thank you kindly!

— Ari

EDIT: Code attached as .ZIP file

  • Ari Sagiv asked 1 month ago
  • last active 4 weeks ago
0 votes
159 views

I am trying to change the 8 provided themes for example change the color and tick mark lengths. The link below shows how but my problem is I have no idea where to put the provided code. Do you have a complete example showing how to change the themes where to put the code and how to connect it all together?

https://www.scichart.com/questions/wpf/tick-line-style?tab=answers#sabai-questions-7753-add-answer

0 votes
167 views

Hello,

Does DirectX rendering capabilities (DirectXRenderSurface)are enabled/supported for 3D charts also?

Thanks
Deepak

  • deepak b asked 1 month ago
  • last active 1 month ago
0 votes
0 answers
156 views

I have a chart with many data series, each with their own Y-Axis. Initially i set the data series to hidden to stop the chart being filled with all the Y-Axes but when the data series is selected from the legend i want to show the Y-Axis for that data series and hide again when deselected.

What i would also like to do is limit the number of data series visible at one time, is this possible?

0 votes
153 views

https://www.scichart.com/questions/wpf/different-colors-for-fastcolumnrenderableseries

I saw above but am not sure if what I want to do is possible. I would like to create an effect when mouse is over a colomn in a column chart it stays the same color it was but all others dim slightly with a semitransparent brush. Is it possible to do that?

  • John asked 1 month ago
  • last active 1 month ago
1 vote
179 views

I’m able to turn the SciChartOverview control so that it appears vertical and am able to get the grips to flow vertically as well but whenever the data is flowing, it still flows horizontally. How do I get it to flow vertically? See attached image for what it currently does.

0 votes
150 views

Few questions. First on a normal scichartsurface you have option to turn debuging to the console on. I do not see that option for the donut surface. Is there another way? Also if you have donutsegmentviewmodels and all values are 0 it throws an exception in the application. Is this expected behavior? I’d think the default behavior would just be to not render?

  • John asked 1 month ago
  • last active 1 month ago
0 votes
177 views

We currently have up to 4 charts that are stacked vertically and the data flows horizontally. However, we need to reverse it so that they are stacked horizontally and the data flows vertically. We currently have a grid setup for the charts to be set to but I can’t seem to figure out how to reset the Grid.Row and Grid.Column of each SciChartSurface at runtime.

Example:
Horizontally, this is how it looks…

<s:SciChartSurface x:Name="sciChartSurface1" Grid.Row="0" Grid.Column="1">

Vertically, it needs to be this…

<s:SciChartSurface x:Name="sciChartSurface1" Grid.Row="1" Grid.Column="0">

Is this possible to do at runtime/from the backend code?

0 votes
168 views

Two questions. First how do I draw an axis label for every column in a column chart. See attached pic. Also the first axis label is correctly positioned under the column chart but subsequent ones are off to the left quite a bit. Not sure how to fix either. Here is xaml to rotate the axis lablel

<Style x:Key="SessionBreakDownByHourColumnGraphXAxisLabelStyle" TargetType="sc:DefaultTickLabel">
    <Setter Property="LayoutTransform">
        <Setter.Value>
            <RotateTransform Angle="45" />
        </Setter.Value>
    </Setter>
</Style>

UPDATE: Setting autoticks to false shows all axis labels but still off center. Adding new photo.
UPDATE: So changing xaml to below and adding a few to visible range on xaxis seems to solve the issue. Still unsure why i have to modify the visible range slightly.

<Style x:Key="SessionBreakDownByHourColumnGraphXAxisLabelStyle" TargetType="sc:DefaultTickLabel">
    <Setter Property="LayoutTransform">
        <Setter.Value>
            <RotateTransform Angle="45"/>
        </Setter.Value>
    </Setter>
    <Setter Property="HorizontalAnchorPoint" Value="Left"/>
    <Setter Property="VerticalAnchorPoint" Value="Bottom"/>
</Style>

Final Xaml that solved for me

<Style x:Key="SessionBreakDownByHourColumnGraphXAxisLabelStyle" TargetType="sc:DefaultTickLabel">
    <Setter Property="LayoutTransform">
        <Setter.Value>
            <RotateTransform Angle="45"/>
        </Setter.Value>
    </Setter>
    <Setter Property="HorizontalAnchorPoint" Value="Left"/>
    <Setter Property="VerticalAnchorPoint" Value="Bottom"/>
    <Setter Property="FontSize" Value="9"/>
    <Setter Property="FontWeight" Value="Bold"/>
    <Setter Property="Margin" Value="-5,0,0,0"></Setter>
    <Setter Property="Foreground" Value="{DynamicResource AccentBaseColorBrush}"/>
</Style>
  • John asked 1 month ago
  • last active 1 month ago
0 votes
194 views

When the GrowBy property on NumericAxis3D is specified, a tooltip modifier on the same 3D chart shows over data points that are not those under the mouse pointer.

To replicate the issue:

  1. Clone the examples project from GitHub and open the SciChart2D3D.Examples solution.

  2. In UniformColumn3D.xaml change the XAxis, YAxis, ZAxis and ChartModifier elements to the following, from line 101 onwards:

    <s3D:SciChart3DSurface.XAxis>
        <s3D:NumericAxis3D AutoRange="Always"  />
    </s3D:SciChart3DSurface.XAxis>
    
    <s3D:SciChart3DSurface.YAxis>
        <s3D:NumericAxis3D AutoRange="Always" />
    </s3D:SciChart3DSurface.YAxis>
    
    <s3D:SciChart3DSurface.ZAxis>
        <s3D:NumericAxis3D AutoRange="Always" />
    </s3D:SciChart3DSurface.ZAxis>
    
    <s3D:SciChart3DSurface.ChartModifier>
        <s3D:TooltipModifier3D HoverDelay="150" CrosshairMode="Lines" ShowTooltipOn="MouseOver" />
    </s3D:SciChart3DSurface.ChartModifier>
    
  3. Run the application and observe that the 3D Charts -> Basic Chart Types -> Uniform Column 3D chart shows a chart with correct tooltips appearing when the mouse is hovered over columns on the chart.

  4. Add GrowBy=”0.1, 0.1″ to each axis property as follows:

    <s3D:SciChart3DSurface.XAxis>
        <s3D:NumericAxis3D AutoRange="Always" GrowBy="0.1,0.1"  />
    </s3D:SciChart3DSurface.XAxis>
    
    <s3D:SciChart3DSurface.YAxis>
        <s3D:NumericAxis3D AutoRange="Always" GrowBy="0.1,0.1" />
    </s3D:SciChart3DSurface.YAxis>
    
    <s3D:SciChart3DSurface.ZAxis>
        <s3D:NumericAxis3D AutoRange="Always"  GrowBy="0.1,0.1"/>
    </s3D:SciChart3DSurface.ZAxis>
    
  5. Run the application again and hover the mouse over the same chart. Note that the tooltop is now shown for a data point different to whichever one the mouse is over at the time, which is incorrect.

0 votes
192 views

I am trying to produce a ScatterChart that has point markers colors that are dependent on a list of color datapoints. I have created a custom IPointMarkerPaletteProvider that has the PointPaletteinfo function defined as:

    public PointPaletteInfo? OverridePointMarker(IRenderableSeries series, int index, IPointMetadata metadata)
    {

        return new PointPaletteInfo()
        {
            Fill = ((BondMetaData)metadata).Color,
            Stroke = ((BondMetaData)metadata).Color,

        };
    }

It works, however, the panning feature becomes extremely laggy as though it is resetting the color of every point everytime the chart is moved.

What should I do to improve the performance?

0 votes
185 views

I created a CustomRenderableSeries to put TextAnnotations on surface for every drawn point.

I discovered that Draw method is not called when no points are to be drawn in the visible range, so i can’t do any cleanup of the annotations i created in a previous pass.

Is there a way to force Draw method to be called anyway upon surface redraw (for example when zooming)?

Thank you

0 votes
0 answers
169 views

My issue is that the Pointmarker does not draw when I attempt to implement a custom renderable series view model. I’ve isolated it to the fact I am subclassing because the same code will draw if I replace my custom subclass with the base class.

I subclassed XyScatterRenderableSeriesViewModel like so:

public class CustomSeriesViewModel : XyScatterRenderableSeriesViewModel
{
    public CustomSeriesViewModel ()
    : base()
    {
    }
}

It is created like this:

return new CustomSeriesViewModel ()
        {
            // Note: the Pointmarker is created in the Xaml. See styles.
            StyleKey = "CustomSeriesStyle",
            DataSeries = dataSeries,
            IsSelected = true,
        };

And added into a list of type List IRenderableSeriesViewModel

If I replace the line new CustomSeriesViewModel () with new XyScatterRenderableSeriesViewModel(), the Pointmarker is drawn successfully. This is confusing to me, as there’s no other code in the subclass than the constructor, so I would expect it to be substitutable.

The style is responsible for defining the Pointmarker and looks like this:

 <Style x:Key="CustomSeriesStyle" TargetType="s:BaseRenderableSeries" >
    <Setter Property="s:TooltipModifier.TooltipTemplate" Value="{StaticResource CustomTooltipTemplate}" />
    <Setter Property="s:TooltipModifier.TooltipContainerStyle" Value="{StaticResource CustomTooltipStyle}" />
    <Setter Property="PointMarker">
        <Setter.Value>
            <s:SpritePointMarker>
                <s:SpritePointMarker.PointMarkerTemplate>
                    <ControlTemplate>
                        <Grid>
                            <Ellipse Width="13" Height="13" Fill="White"/>
                            <Ellipse Width="9" Height="9" Fill="{StaticResource CustomBrush}"/>
                        </Grid>
                    </ControlTemplate>
                </s:SpritePointMarker.PointMarkerTemplate>
            </s:SpritePointMarker>
        </Setter.Value>
    </Setter>
</Style>
  • John Chow asked 2 months ago
  • last active 2 months ago
Showing 1 - 50 of 2k results