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

0 votes
0 answers

edit – please disregard. I checked the SciTraderView demo source code and found that it is required to recalculate data manually

0 votes
0 answers

Using scichart in wpf, set AcceptsUnsortedData = true, there is a dashed line indicating the direction of the data, I want to know, how to hide it, does affect the normal display of the chart.

0 votes

I am trying to create a new FastUniformHeatMap at runtime and bind it to a dataset, everything needs to be done in the code behind and I am not using MVVM.
I can create the HeatMap in the code behind with:

        SciChartSurface g2d = new SciChartSurface();
        FastUniformHeatmapRenderableSeries fuhrs = new FastUniformHeatmapRenderableSeries();
        HeatmapColorPalette hcp = new HeatmapColorPalette();
        NumericAxis xaxis = new NumericAxis();
        NumericAxis yaxis = new NumericAxis();
        g2d.RenderableSeries = new ObservableCollection<IRenderableSeries>() { fuhrs };
        g2d.XAxis = xaxis;
        g2d.YAxis = yaxis;

I can set the DataSeries with:

       g2d.RenderableSeries[0].DataSeries = myDataSeries;

(Where myDataSeries is a property returning a UniformHeatMapDataSeries object)

and I get my image, however, it is not bound to the property and if myDataSeries changes the image will not change.

How do I bind the DataSeries instead of just setting it, in this case?

I can make it work easily from the Xaml:

< sciChart:FastUniformHeatmapRenderableSeries DataSeries=”{Binding Path=myDataSeries, Mode=OneWay}” />

but I cannot figure out how to do it from the code behind.

0 votes


according to your Limitations and Terms:

When your subscription expires unfortunately we have to remove your access. You can still get a zip of the latest version you are entitled to even after support expiry.

My licence is already expired. But how exactly I can get the repository zip?

Mi Licence and GitHub account is submited.

  • Daniel asked 2 weeks ago
  • last active 2 weeks ago
0 votes

Hi, I would like to know if it is possible to do half-pie (as in the photo) with SciChartDonutSurface and if so how? Thanks!

  • mike laor asked 3 weeks ago
  • last active 2 weeks ago
0 votes
0 answers

Hi All,
Im trying to kind of reproduce trademarkers example, but i cant get the datacontext of Annotation bound to show the tooltip data.

this is the way im doing things:

first i let the user select an area to place a box annotation via SimpleSelectionModifier


s:SciChartSurface x:Name="_chart" Annotations="{s:AnnotationsBinding Annotations}"
   <!-- axis not showed for legibility !--
          mods:SimpleSelectionModifier IsEnabled="{Binding EnableAnnotation}"
                                i:EventTrigger EventName="RangeSelected"  
                                                            SourceObject="{Binding RelativeSource={RelativeSource  AncestorType={x:Type 
                                                                                            mods:SimpleSelectionModifier }}}"
                                    prism:InvokeCommandAction Command="{Binding RangeSelectedEvent}"  TriggerParameterPath="Coordinates"/

On the VieModel side i’ve got this property to save CustomAnnotationViewmodels , bound to the scichart.Annotations property

private ObservableCollection<IAnnotationViewModel _annotations = new   ObservableCollection<IAnnotationViewModel>();
public ObservableCollection<IAnnotationViewModel> Annotations
    get { return _annotations; }
    set { SetProperty(ref _annotations, value); }

and this Command executed on the rangeSelectedEvent when i create the annotation on the coordinates selected by the user viewmodel and add some custom ddata

   void ExecuteRangeSelectedEvent(Coordinates parameter)
            var annotation = new CustomAnnotationViewModel
                IsEditable = true,
                CanEditText = true,

                X1 = parameter.X1,
                X2 = parameter.X2,
                Y1 = parameter.Y1,
                Y2 = parameter.Y2,
                Data = new Data("test", "text tooltip", DataType.CoolData)
            EnableAnnotation = false;

The CustomAnnotationViewModel is based on the BuyMarkerAnnotationViewModel of the tradeMarkers Example.

and interface to support Data management and CustomAnnottionVIewModel that implementado the interface

public interface ISupportData : IAnnotationViewModel
    Data Data { get; set; }

 public class CustomAnnotationViewModel : CompositeAnnotationViewModel,  ISupportData
    private Wave _data;

    public Wave Data
        get { return _data; }
            _data = value;

    public override Type ViewType
        get { return typeof(CustomAnnotation); }

and finally de XAML on CustomAnnotation where everything should be bound

 s:CompositeAnnotation x:Class="CustomAnnotation"
                           X1="{Binding X1, Mode=TwoWay}"
                           Y1="{Binding Y1, Mode=TwoWay}"
                           X2="{Binding X2, Mode=TwoWay}"
                           Y2="{Binding Y2, Mode=TwoWay}"

            s:BoxAnnotation Background="Coral"
                             Y2="1" /
            s:LineArrowAnnotation CoordinateMode="Relative"
                                   Y2="0.5" /
            s:LineArrowAnnotation CoordinateMode="Relative"
                                   Y2="1" /
            s:TextAnnotation x:Name="MeasureText"

                    ToolTip Foreground="#222"
                        Grid Margin="6" DataContext="{**Binding Data**}"
                                RowDefinition Height="Auto" /
                                RowDefinition Height="Auto" /

                                ColumnDefinition Width="Auto" /
                                ColumnDefinition Width="Auto" /
                                ColumnDefinition Width="Auto" /
                            TextBlock Grid.Row="0" Grid.Column="0" Text="Type: " /
                            TextBlock Grid.Row="1" Grid.Column="0" Text="Text: " /
                            TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Type}" Foreground="#FF00B400"/
                            TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding LabelText}" /


I dont mind if everything is shown on tooltip or other way. but when oi run it a get this binding error.

Data is not found on ViewModel

Any ideas? Can anybody see where im making a mistake?
any help would be very appreciated.

0 votes

How to associate a SciChartOverview with multiple SciChartSurfaces? Is there a demo?

0 votes
0 answers

Hello all,

I was trying to export my SciChartSurface to bitmap, to save in a pdf.

First I tried ExportToBitmapSource(true/false, wantedSize) method. It leaded to StackOverflowException.
Then I tried to set explicitly the Height and Width and call the parameterless ExportToBitmapSource() method. It works fine, saves fine, but for a second I see the modified Height and Width and axes.
I tried them sync and async calls too.

Have you ever met these kind of functioning, or is the failure in me?

On my SciChart almost everything has predefined Style. Maybe that’s why the ExportToBitmapSource(true/false, wantedSize) dies while cloning the chart inside?

0 votes

We are trying to add an image annotation to a View Model. We have closely followed Tutorial 07b – Adding Annotations with MVVM, as well as the Custom Annotations – Adding a WaterMark to a Chart example, but we are not having luck getting anything to show up.
We would like to have something that allows us to pass in the pathway to an image, and then lets us display it on our chart. Depending on different circumstances, we would want to display different images. Is there an example of this type of image annotation somewhere?
Thank you!

0 votes

Please let me know, it is possible or not.

I want change MajorTickLineStyle.Stroke value in code behind and runtime by user.

i was try to changed style, it is sealed.

Please help me!!

  • SSW PS asked 1 month ago
  • last active 4 weeks ago
0 votes


I am using SciCharts for a data viewer of IQ data from a spectrum analyzer, sampling at 80MS/s.

What is the limit of the XyDataSeries, as i am getting an “Array dimensions exceeded supported range.”

With StackTrace of:
at eel1.set_ufk(Int32 value)
at eel
1.esy(Int32 tdw)
at eel1.InsertRange(Int32 index, IEnumerable1 collection)
at SciChart.Charting.Model.DataSeries.XyDataSeries2.InsertRange(Int32 startIndex, IEnumerable1 x, IEnumerable1 y, IEnumerable1 metadata)
at SciChart.Charting.Model.DataSeries.XyDataSeries2.InsertRange(Int32 startIndex, IEnumerable1 x, IEnumerable`1 y)
at XXX

The count of the dataseries is 134,217,728, and I am trying to append another 524,288 records to it.

I have compiled the application using 64bit and have tried with multiple versions of scicharts up to the latest one on nuget, all of which appear to show the same issue.

If this is a limit of the XyDataSeries, is there any other mechanisms to load the FastLineRenderableSeries that would be able to handle more data?

Thanks for any help in this matter,


  • Daniel asked 1 month ago
  • last active 4 weeks ago
0 votes
0 answers

Hello SciChart team,
we have a problem with column series in 2D. At certain values in the X-axis, the bars in the chart overlap.

We found that the bar width is calculated incorrectly only from a certain distance between the values on the X-axis. There seems to be a bug in the calculation of the minimum bar width.

I’ve already seen issues related to a similar problem with the non-equidistant axis values and have already tried the “UseUniformWidth” property. Unfortunately without success. In principle, however, it seems to work with the non-equidistant axis values (ColumnChart1.png). As soon as the value is changed from 16 to 18, the bars overlap (ColumnChart2.png). In the application we need the width at 100%.

I’ve also attached an example project that can be used to reproduce the error.

Best regards

0 votes
0 answers


I have a collection of IAxisViewModel that I would like to be bound to the XAxes or YAxes of the chart. I don’t use the AxisBiding markup, everything is code behind.

For example, the following must be bound to the ScichartSurface.XAxes :

 public ReadOnlyObservableCollection<IAxisViewModel> XAxes;

Unfortunately Scichart.XAxes is waiting a type of AxisCollection but the only way to read a collection of IAxisViewModel is to use your AxesSourceCollection.

At first I thought that this would be possible :

public ReadOnlyObservableCollection<IAxisViewModel> XAxes;

    var xAxesSourceCollection = new AxesSourceCollection(ViewModel.XAxes);
    sciChartSurface.XAxes = xAxesSourceCollection ;

But it is not.
The last resort is to bind the created xAxesSourceCollection. Using ReactiveUI bindings, it is possible to do the following :

                    .OnItemAdded(x => sciChartSurface.XAxes.Add(x))
                    .OnItemRemoved(x => sciChartSurface.XAxes.Remove(x))

Meaning that I subscribe to the changes of the created xAxesSourceCollection and when a new axis is added/removed, I add/remove it from the XAxes collection of the scichart surface. See image “Without numericAxis”

Everything works fine when I remove an axis but things do not work when I add an axis. The axis is well added in the scichartSurface collection but the axis is not displayed (the major bands/minor bands are). If I use a singleton view model and refresh the whole control, the axes are visible meaning that something inside the scichart surface with the NumericAxisForMVVM is broken.

Even more, if I replace the previous code by this one :

                    .OnItemAdded(x => sciChartSurface.XAxes.Add(new NumericAxis() 
                        IsPrimaryAxis = x.IsPrimaryAxis,
                        Id = x.Id,
                        AxisTitle = x.AxisTitle
                    .OnItemRemoved(x => sciChartSurface.XAxes.Remove(x))

It works as expected because I have replaced the NumericAxisForMVVM by a NumericAxis breaking the link between the view model and the view. See image “With numericAxis”

How can I fix the following ?

Two images are below

0 votes
0 answers


When I create several axes using NumericAxisViewModel, scichart automatically creates corresponding IAxis into its Axes collection.

I have seen that if I change something on the NumericAxisViewModel, the IAxis will have the changes but if I change a property from the IAxis (let’s say AxisTitle), the corresponding NumericAxisViewModel.AxisTitle will not have the change.

The flow works from AxisViewModel to IAxis but not from IAxis to AxisViewModel.

Is it something that was intended from your side ?

1 vote
0 answers

Is it possible to add color gradients to part of the mesh on an ObjectModel3D? We would love to use SciChart exclusively for our charts because they are easy to work with and almost all of the other charts in our software are SciChart charts.

Currently, we use LightningCharts for our 3D heads and the have a method call UpdateFill which applies a color gradient to part of the mesh. This shading is done using the geometry data generated from LightningCharts after the head is rendered. I didn’t see a similar method in SciChart but I don’t know that it is necessary because the geometry will be the same ever time the chart is rendered so we can just use the data generated from LightningCharts.

I’ve included a screenshot showing what I’ve been able to create with SciChart and a screenshot showing what the chart looks like currently with LightningCharts. The brain is a .obj file (along with the scalp and face but those are separate and don’t require any shading). The sensor locations (Fp1, Fp2, O1, and O2) are added using the ScatterRenderableSeries3D (I haven’t added annotations for the locations yet).



0 votes


This question is related to this discussion :

I want to export a chart as XPS and have the HeatmapColorMap on the XPS. I put the HeatmapColorMap inside a CustomAnnotation. I had an issue with the ticks and labels not appearing on the printed XPS so I was advised to use a workaround :

public class SciChartSurfaceEx : SciChartSurface
    protected override SciChartSurfaceBase CreateCloneOfSurfaceInMemory(Size newSize)
        // Grab custom annotation that stores HeatmapColormap on a real chart
        var originalColormapAnnotation = (CustomAnnotation)this.Annotations.Where(x => x.GetType() == typeof(CustomAnnotation)).FirstOrDefault();
        var originalColorMap = originalColormapAnnotation.Content as HeatmapColorMap;

        // Perform exporting functionality(serializing\deserializing)
        var cloned = (SciChartSurface)base.CreateCloneOfSurfaceInMemory(newSize);

        var newWindow = new Window();
        newWindow.Content = cloned;

        return cloned;

Opening a new window is a workaround to prevent the HeatmapColorMap from disappearing after exporting, because it disappears otherwise.
This works fine when exporting a PNG at non-default size but it does not work when exporting as XPS. I get the following exception :

System.InvalidOperationException: ‘Specified element is already the logical child of another element. Disconnect it first.’

Why do I have this exception ? Is there any way around it ?
There are quite a few bugs when exporting charts, it would be nice to have them fixed.

Thank you in advance !

0 votes

I have a DataTemplate defined in my xaml file that I’d like to access from my ViewModel that I use to manage the layout and look of the chart legend

Here is the DataTemplate I have defined:

<DataTemplate x:Key="CustomLegendTemplate"
        <Grid HorizontalAlignment="Right"
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />

            <!--  Series icon, binds to SeriesInfo.Stroke  -->
            <Ellipse Grid.Column="0"
                     Margin="2 2 8 0"
                     Fill="{Binding Stroke,
                                    Converter={StaticResource ColorToBrushConverter}}" />

              <!--Series name (SeriesInfo.SeriesName)-->  
            <TextBlock Grid.Column="1"
                           Text="{Binding SeriesName}" />

            <!--  Show or hide the 'Visibility Checkboxes'  -->
            <Grid Grid.Column="1"
                  Visibility="{Binding DataContext.ShowVisibilityCheckboxes,
                                       Converter={StaticResource BooleanToVisibilityConverter}}">

                <!--  Binds to SeriesInfo.IsVisible to show and hide the series  -->
                <CheckBox Width="16"
                          Foreground="{Binding Stroke,
                                               Converter={StaticResource ColorToBrushConverter}}"
                          IsChecked="{Binding IsVisible,
                        <ScaleTransform ScaleX="0.7" ScaleY="0.7" />

Now I’d like to access this template from my ViewModel to help manipulate my Legend the ViewModel code I have :

ModifierGroup legendInfo = new ModifierGroup(new LegendModifier()
                ShowLegend = true,
                Orientation = Orientation.Vertical,
                Margin = new Thickness(0, 0, 0, 0),
                LegendPlacement = LegendPlacement.Inside,
                GetLegendDataFor = SourceMode.AllSeries,
                ShowVisibilityCheckboxes = true,
                FontSize = 8,
                Background = (Brush)AxisColor.ConvertFromString("Transparent"),
                ShowSeriesMarkers = true

Then I add this to a ChartModifier = new ModifierGroup(XAxisDrag, YAxisDrag, ZoomExtents, RubberBandZoom, PanModifier, Rollover, legendInfo);

It is all working beautifully, but how can I reach for the xaml DataTemplate I have defined ?

Thank you for the excellent support

0 votes

Hello SciChart-Team,
we had the requirement to show the zero line when there are negative values ​​in the chart.
We noticed the following things, especially in connection with the main grid lines.
There are some side effects at certain sizes of the window:
When the gridlines are on(see screenshot 1):
1. Grid line and tick are not on the same level (Only for certain sizes)
2. The grid line and horizontal annotation line (green) are not aligned either (Only at certain sizes)
3. The axis line (defined via BorderThickness) is also not aligned with the grid line (regardless of the size of the control).And the bottom tick is never aligned with the major grid line

If the major grid lines are switched off, the zero annotation line is not aligned to the ticks for certain sizes of the control (see screenshot 2)

It looks like different algorithms were used to calculate the line position of the ticks, grid lines and line annotations.

The problem was detected on the monitor with 100% scaling. On a 4K monitor with scaling > 100%, the problem became even more apparent

Do you have any suggestion how to solve the problem?

I’ve attached a modified example project in which the behavior can be reproduced.

Silvester Schneidt

0 votes
0 answers

I have a SciChartLegend below my chart that was using the default item template in v6.4, and I could change the color of my legend labels simply by setting the Foreground property of the SciChartLegend. However, when I updated to SciChart 6.5.1, the font of my legend labels changed to all black. If I investigate my UI using Snoop, I see the following Binding error on the TextBlock.Foreground property for one of my legend items:

System.Windows.Data Error: 4 : Cannot find source for binding with reference ‘RelativeSource FindAncestor, AncestorType=’SciChart.Charting.Visuals.RenderableSeries.LegendPlaceholder’, AncestorLevel=’1”. BindingExpression:Path=Foreground; DataItem=null; target element is ‘TextBlock’ (Name=”); target property is ‘Foreground’ (type ‘Brush’)

I also tried v6.5.0, and this behavior did not occur – it is new in v6.5.1

Below is the definition of my legend.

<s:SciChartLegend x:Name="legend"
                  LegendData="{Binding ElementName=LegendModifier, Path=LegendData}"
            <chartUtils:UniformWrapPanel Orientation="Horizontal"/>
0 votes
0 answers

Hello Andrew & Co.

I need some guidance in an attempt to add some required functionality to my SciChart application.

A requirement has been brought to my attention where a user wants to do a graph over lay from a different time snap shot . This is useful for comparison reasons, where the engineer wants to compare a previous successful execution of a process with a current running one.

  • One part of the solution is to save the dataseries info from a finite
    time period in the past.
  • Second part is that the overlaid trend (dataseries) need to be time
    XAxis independent but YAxis relative.

I am looking at two different scenarios let me see what you guys think:

  1. Overlaid historic static trend on existing chart surface
  2. Historic static trend in a new chart surface (smaller format) on the
    bottom of the current chart surface being displayed

How should I best approach such an implementation ? The application is using the MVVM pattern. I have adhered to the pattern pretty religiously so far

Hopefully that makes sense to describe what I am trying to accomplish.
Appreciate your support and expert guidance in this matter


0 votes

Is there a recommended way to add a border to a chart’s surface (not the entire chart)? In v3.x the chart surface rendered its own “built-in” border, but after upgrading to v6.x it no longer does this.
In our products we usually disable all grid lines and bands too, so there is no “visual style” to help differentiate the chart surface from the surrounding page/window, hence the need for a border around it.

I’ve tried adding a border to the GridLinesPanelStyle but this has no effect. I can add a border to the SciChartSurface, but this gets rendered “on top”, obscuring any points or lines that sit on the very edge of the surface, e.g. in a line chart where several of the points might be Y=0, resulting in them being hidden behind the border’s bottom edge. Although this can be mitigated by adding a “GrowBy”, it’s not always practical/desirable.

0 votes

Is there a way to apply functionalities on signals as in average, slope, etc. ?

Thank you

1 vote
0 answers

I’ve created a chart that generates a System.AccessViolationException every time it runs.

I’ve attached the minimal reproduction I could come up with. It seems to be related to the combination of a FastLineRenderableSeries with:
StrokeDashArray = new[] { 2.0, 2 },
IsDigitalLine = true
DataSeries with UserDefinedDistributionCalculator with ContainsNaN = true

because any other combination of those properties and it does not crash.

  • Eamon asked 2 months ago
  • last active 2 months ago
0 votes
0 answers

My question relates to a question from 8 years ago but since so much time has past I am wondering if there is now a solution?

Is it possible to offset the columns in a StackedColumnRenderableSeries so that the value they represent on the x-axis is aligned with either the left or right edge of the column instead of the centre?

i.e. for a series with uniform column width of 1 and a column with an x value of 1 I’d like the column to render between 0 and 1 rather than between 0.5 and 1.5

0 votes

My application intermittently output the following exception log:

System.InvalidOperationException: Enumerator version is invalid
Location: hbq`1.ghm.uqc()

InvalidOperationException could be thrown when a collection is modified while iterating of IEnumerable collection

However, it usually outputs the following exception message:
“Collection was modified; enumeration operation may not execute.”
(NOT is “Enumerator version is invalid”)

When and under what conditions can this exceptions occur?

When an exception occurs, the call stack is as follows:

System.Core.dll!System.Linq.Enumerable.Any(System.Collections.Generic.IEnumerable source)
SciChart.Charting.dll!SciChart.Charting.Model.DataSeries.DataSeries<double, double>.GetIndicesRange(SciChart.Data.Model.IRange range, SciChart.Charting.Common.Extensions.SearchMode downSearchMode, SciChart.Charting.Common.Extensions.SearchMode upSearchMode)
SciChart.Charting.dll!SciChart.Charting.ChartModifiers.SeriesValueModifier.kly(SciChart.Charting.Visuals.RenderableSeries.IRenderableSeries gsv)
SciChart.Charting.dll!SciChart.Charting.ChartModifiers.SeriesValueModifier.OnParentSurfaceRendered(SciChart.Charting.Utility.SciChartRenderedMessage e)
SciChart.Core.dll!TinyMessenger.TinyMessengerHub.ptc<SciChart.Charting.Utility.SciChartRenderedMessage>.Deliver(TinyMessenger.ITinyMessage message)
SciChart.Core.dll!TinyMessenger.DefaultTinyMessageProxy.Deliver(TinyMessenger.ITinyMessage message, TinyMessenger.ITinyMessageSubscription subscription)
SciChart.Core.dll!TinyMessenger.TinyMessengerHub.ptg<SciChart.Charting.Utility.SciChartRenderedMessage>.hyi(TinyMessenger.TinyMessengerHub.ptd ayb)
mscorlib.dll!System.Collections.Generic.List<TinyMessenger.TinyMessengerHub.ptd>.ForEach(System.Action<TinyMessenger.TinyMessengerHub.ptd> action)
SciChart.Core.dll!TinyMessenger.TinyMessengerHub.fbs<SciChart.Charting.Utility.SciChartRenderedMessage>(SciChart.Charting.Utility.SciChartRenderedMessage axj)
SciChart.Core.dll!TinyMessenger.TinyMessengerHub.Publish<SciChart.Charting.Utility.SciChartRenderedMessage>(SciChart.Charting.Utility.SciChartRenderedMessage message)
SciChart.Charting.dll!sjd.urk(SciChart.Charting.Visuals.ISciChartSurface ccg, SciChart.Charting.Services.RenderPassInfo cch, SciChart.Drawing.Common.IRenderContext2D cci)
SciChart.Charting.dll!sjd.RenderLoop(SciChart.Drawing.Common.IRenderContext2D renderContext)
SciChart.Core.dll!SciChart.Core.Utility.CompositionSyncedDelegate.otw(object bdd, object bde)

0 votes

Hi All,

I am facing inconsistent issues like scichart graph freezing. Sometimes works fine, sometimes wont. From right side to left side graph flow is stopping. I am using a health care devise which has a amplitude 0 to 1, when i increase from 0 gradually graph still frozen, when i reach amplitude 1 graph flow starts.

We have crosschecked the values flowing in the code, values are flowing continuously to the chart.

For reference I am attaching screenshot.

So, I just want to know ,is there any attribute in scichart to know when graph is freezing? in the freezing time we can refresh the graph.

Please suggest if any other solutions are there..

Let me know if any other information required.

0 votes

Can someone please post an example or code for Print functionality in MVVM?

Naveen Mandava.

0 votes

Hello all,

I am trying to create multiple Y axes using below example. I am not able to render the left Y axis as per the data series. Any input would help fixing this issue. Please see the attached screenshot.


0 votes

X, Z, Y are 2D (m x n) arrays of the same size.

How do I plot this as a 3D Surface mesh or a 2D Contour? I created a XyzDataSeries3D but when I set it to a SurfaceMeshRenderableSeries3D, it does not plot anything. But it does plot when using ScatterRenderableSeries3D.

I am basically trying to replicate the surf(X, Y, Z), contour(X, Y, Z) function in Matlab.

Attached is a test data that contain the X, Z and Y 2D arrays of size (261 x 10). The zip file contains an Excel file which has three sheets X, Z and Y that contain the data.

The images are of the Surf plot, and the Contour plot generated using Matlab. I need to generate these plots using SciChart instead of with Matlab.

  • A Devadas asked 3 months ago
  • last active 4 weeks ago
0 votes
0 answers

My colleague wants to register a new user of SciChart, he always got stuck by the CAPTCHA stuff, and I tried on my computer, got the same issue, we only could see the CAPTCHA text , but no any input box beside or below the ‘CAPTCHA’.

I closed this question, sorry to bother you, we finally managed to register a user by using a virtual machine. Seems it is my company’s security policy which blocking it.

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


I am selectively drawing colored point markers based off of the Dataseries’ Metadata. I do this by inheriting from the BasePointMarker base class and overriding the Draw method. I’m running into an issue because the IEnumerable points parameter represents the visible points within the viewport, but the List of Point Metadata seems to be for all points within the RenderableSeries. These counts will never match up unless every point in the RenderableSeries is visible within the chart viewport. This is problematic because a lot of the times, a user will be zoomed into a different area of interest of the chart, and the point markers will not be drawn accurately since the points and the corresponding Metadata will not match up.

So, is there a way to only get the metadata for the visible points in the chart? Or at least a way to figure out the starting index of where the visible points will match up to their corresponding metadata within the larger IPointMetadata list.

Thank you,


0 votes

Is there a way to draw an svg formatted annotation onto a chart for WPF?

I have found references/examples for it in javascript here . . .

but not for any other platform.

0 votes

Data format is

X-axis :- number and Y-axis : – datetime

1921,2022-03-18 00:00:00
1921,2022-03-18 01:00:00
1921,2022-03-18 02:00:00
1921,2022-03-18 03:00:00
1921,2022-03-18 04:00:00

this format data I want plot on Stacked Column Chart

  • Divyesh asked 4 months ago
  • last active 3 months ago
0 votes

I’m wondering how to add a DragListener to the YAxis in WPF so that I can tell when my YAxisDragModifier has been invoked. I tried adding a custom EventHandler to the SciChartSurface.YAxis like so: DragEnter=”YAxisDragModifier_DragEnter” but the method wasn’t forwarded any events. I also set ReceiveHandledEvents=”True” in my YAxisDragModifier, but that didn’t seem to help.

0 votes

Hello i am new in using SciChart before that i was using OpenTK, i would like to create XY, XZ, YZ plane/slice in 3D chart like in OpenTK (example of using OpenTK in picture). User will be able to move slices in every direction depending on selected dimension. Is it possible to do this in SciChart?

  • Ivan Zvara asked 4 months ago
  • last active 4 months ago
0 votes

I realise this is a long shot as it refers to v3.6. I upgraded to v6 a few months ago, but the software in question still uses v3.6, and uses the default (high speed s/w) rasteriser.

In 9 years of using v3 I’ve never encountered any rendering issues with SciChart, either in a dev environment or on customer PCs.
Today though, I’ve encountered a user where the chart series aren’t rendering. I asked them to try your v3.6 demo application, and they see the same behaviour with this. The strange part of it is that most of the demo charts render correctly, and it’s just the “real-time” demos that aren’t working. The user can see the axes ranges updating, but the series themselves aren’t being drawn (i.e. the surface is empty). If they switch to the DX10 rasteriser via the combobox at the top then all charts do render correctly.

Our software is used on a wide range of Dell desktops that we always supply brand new to customers. The only obvious difference with this user is that they are using a Dell laptop, but it’s still brand new. It seems unlikely that it would be a graphics driver issue on such a new PC? And if it’s a hardware issue then I’d assume this would affect the DX10 rasteriser and not the s/w rasterisers?

Any thoughts or suggestions on what to investigate, or perhaps some way of seeing extra debug info that might shed some light on the problem? Like I say, I realise it’s a long shot with it being such an old version.

0 votes

I’m using a chart as a way to visualise a series of time-based tasks on a “timeline”, not unlike a Gantt chart (is there anything SciChart can’t be used for?!). I do this using annotations that the user can move and resize, actually custom “box” annotations that can only be dragged and resized horizontally. Image attached if interested.

When a user starts moving or resizing an annotation, I bring it to the front to ensure that it remains visible even if it ends up overlapping another annotation, using:

Panel.SetZIndex(annotation, Int.MaxValue);
For every other annotation
    Panel.SetZIndex(annotation, 0);

Finding this approach was a bit of a happy accident so I’m wary of continuing to use this technique in case it breaks in a future version. I’m assuming this code works because annotations reside in a parent container that inherits from Panel? Do you see any issues using the above or is there a “better” way to change an annotation’s Z-Index?

0 votes


I have created a composite annotation consisting of a Box and a Text Annotations and I need the text to be editable.
I set the TextAnnotation.CanEditText to true, but it doesn’t seem to work. How can I achieve that?

Also, is it possible to allow moving (by dragging) only the Text Annotation inside the composite?

0 votes

What I need is a way to calculate all the y axis values for a series that loops back on itself. Think of a circle for example. See the modified attached sample that shows is three circles. currently, if a vertical slice intersects a circle in two points for a given verticle slice, only the first encountered point gets a tooltip callout. I’m sure there is a sample, but can’t find it.

I’d like to be able to get the callout of all points in the series with values at a given x value, interpolating as needed, interpolating as needed. (I.e. if I am a x= 0.5 on the unit circle I need the y values at 0.86 and -0.86 to be returned by hit testing.

(I am actually implementing an area under the curve tool where the user selects an x range and I need to calculate the area under the curve for the selected range. With a signal vs time trace, this is easy because you only have one y value for each x value and can use the integral of a piece-wise linear curve representing the select points.

It gets complicated when a single series can loop back on itself as in the example of a circle. Here I need to select all points for a selected range and then generate two linear piecewise curves that I can take the integral of each and subtract the lower from the upper to get the area between those curves.

0 votes

Corresponding Order ID: ABTSOFT-2145

We’ve bought one license for our company and some ex-coworkers have activate the license in the same computer[hardware] but with different Windows operating systems for testing.

Now those Windows systems have been covered by a new one. The problem is: we have not deactivate scichart used in the old windows systems. Now we cannot activate scichart in the current used windows system. Could anyone help to reset the activation status of our license?

  • Niu mag asked 4 months ago
  • last active 4 months ago
0 votes

Hello Team,

We are trying to upgrade the SciChart version from v3.6.1.8054 to We tried to use the upgrade tool but that did not help much with the upgrade.

List of Nuget Packages installed:

one of the many issues is with rendering surface type:

The line that throws an error is ” sciChart:RenderSurfaceBase.RenderSurfaceType=”Abt.Controls.SciChart3D.Context.D3D10.Direct3D10RenderSurface”

Error: The attachable property ‘RenderSurfaceType’ was not found in type ‘RenderSurfaceBase’


1 vote
0 answers

Hello SciChart Team,
I have multiple charts in my application where all the charts are in the same ModifierGroup to show the RolloverModifier tooltip at the same time. My chart stack panel is inside a ScrollViewer and as per the suggestion for my previous question, I have set the chart’s TooltipUsageMode to PopUp. But now if I scroll down to the chart list and mouse hover on a chart, the tooltips are popping up over other view regions (check the attached screenshot). We tried to set the tooltip template Panel.ZIndex value to a lower value like here, but they are not working. Can you please let us know if there is any way to not show the chart tooltip over other view regions in Popup mode?

Please check my previous question to get the code sample-

0 votes


Is it possible to trigger the rubber band zoom modifier on mouse double click?

                        IsEnabled="{Binding NotRecording}"
                        RubberBandStrokeDashArray="2 2"

The above does not trigger anything.

Ideally I’d like to double click to start the area selection and click again to confirm it, as opposed to mouse down and mouse up.

I want to do this because I’m using the mouse down event to place the Vertical Slice at the clicked position.


0 votes

Dear SciChart Team,

I am trying to rotate the Tick Labels of the X-Axis.
Currently I am using “RotateTransform” in combination with “LayoutTransform” with a negative angle. The labels already rotate, but they rotate around the center of width and size of the label.
What I want to achieve is that the rotated label ends on the Tick line of the X-Axis like in Screenshot from an Excel Diagram which is attached to this post.
Is there any build in Property I can use to “right align” the labels which I haven’t found yet?

Best Regards,

0 votes

To whom this may concern:

I am having an issue on a new computer that I bought with an 11th-gen GPU processor with an Intel Iris Xe GPU.

Usually when I plot live data, the chart updates automatically. However, with this computer, the chart appears to be frozen, but the axes are still moving. The only way the chart itself updates is if you resize it or hide-and-reshow it, and then it freezes again. The software doesn’t crash, and no errors have been logged. This has happened with all of our programs using SciChart.

This issue can’t be re-created on any other computer we have. I have video evidence of this, but it’s larger than 1 MB so I can’t upload it here.

Can you please advise?

Thank you kindly!

— Ari

  • Ari Sagiv asked 4 months ago
  • last active 4 months ago
0 votes


O saw in WPF Charting Documentation there is a PolygonAnnotation type, that might be just what I need for creating a polygon on mouse clicks (using a AnnotationCreationModifier).

Could you, please, help me with an example on how to do this?

0 votes

Hello SciChart Team,
I have multiple charts in my application where all the charts are in the same MdofierGroup to show the RolloverModifier tooltip at the same time. As I want to show custom tooltip text, I have created a custom TooltipTemplate and TooltipContainerStyle. But now when the tooltip is shown on the left side the tooltip text is a long way from the marker. I want to align the tooltip text based on the tooltip position. When the tooltip is on the right side the text will be aligned left and when the tooltip is on left side the text will be aligned right.

I have attached some code snippets of my implementations, can you suggest me any way to achieve this?

<Style x:Key="_tooltipContainer" TargetType="scichart:TooltipControl">
        <Setter Property="Template">
                <ControlTemplate TargetType="scichart:TooltipControl">
                    <ContentPresenter Content="{TemplateBinding DataContext}"
                                          ContentTemplate="{TemplateBinding ContentTemplate}" />

    <DataTemplate x:Key="_tooltipTemplate" DataType="scichart:XySeriesInfo">
        <StackPanel Orientation="Vertical">
            <TextBlock FontSize="12" FontFamily="Rubik" Foreground="White">

    <!-- Style applied via x:Key name in ViewModel -->
    <Style TargetType="scichart:BaseRenderableSeries"  x:Key="_lineSeriesStyle">
        <Setter Property="RolloverMarkerTemplate">
                    <Ellipse Width="7" Height="7" Stroke="White" StrokeThickness="1" />

        <Setter Property="scichart:RolloverModifier.TooltipContainerStyle" Value="{StaticResource _tooltipContainer}"/>
        <Setter Property="scichart:RolloverModifier.TooltipTemplate" Value="{StaticResource _tooltipTemplate}"/>
        <Setter Property="scichart:RolloverModifier.IncludeSeries" Value="True"/>
        <Setter Property="StrokeThickness" Value="2"/>

 <scichart:SciChartSurface RenderableSeries="{scichart:SeriesBinding ItsRenderableTimeGraphSeries}">

                                        <scichart:ModifierGroup DataContext="{Binding Path=DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}}" 
                                                            scichart:MouseManager.MouseEventGroup="MouseEventGroup" >
                                            <scichart:RolloverModifier ShowTooltipOn="MouseHover" DrawVerticalLine="False" />

In ViewModel:

ItsRenderableTimeGraphSeries = new ObservableCollection<IRenderableSeriesViewModel>
            new MountainRenderableSeriesViewModel()
                IsDigitalLine = false,
                StyleKey = "_lineSeriesStyle",
0 votes


I am developing a desktop application using your SciChart WPF v6.5.1.26067 library. Right now, it is used on Windows 10 machines. It is working in all computers except for one. In this computer, we can’t make zoom or click on it to show more data. Could you tell me a reason? The machine system information is:

      Time of this report: 2/17/2022, 17:05:06
      Machine name: PA05009
      Machine Id: {54B0843D-6CE1-4289-A978-A41820074452}
      Operating System: Windows 10 Pro 64-bit (10.0, Build 19042) (19041.vb_release.191206-1406)
      Language: Spanish (Regional Setting: Spanish)
      System Manufacturer: Dell Inc.
      System Model: Vostro 3500
      BIOS: 1.9.0 (type: UEFI)
      Processor: 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz (4 CPUs), ~3.0GHz
      Memory: 8192MB RAM
      Available OS Memory: 7914MB RAM
      Page File: 7853MB used, 6461MB available
      Windows Dir: C:\WINDOWS
      DirectX Version: DirectX 12
      DX Setup Parameters: Not found
      User DPI Setting: 120 DPI (125 percent)
      System DPI Setting: 120 DPI (125 percent)
      DWM DPI Scaling: UnKnown
      Miracast: Available, with HDCP
      Microsoft Graphics Hybrid: Not Supported
      DirectX Database Version: 1.0.8
      DxDiag Version: 10.00.19041.0928 64bit Unicode



0 votes


wpf schichart dataseries length is 2048
_dataSeries[i] = new XyDataSeries<DateTime, double> { FifoCapacity = 2048, AcceptsUnsortedData = true };

But i am looping to fill the data in scichart for 1024 times only, so to fill 2048 length, 2 times have to loop of 1024

_dataSeries[channel].Append(Datetime, value);

please find the issue if i do the above process in image1, in middle of the graph can find little thickness of wave at a straight line(because of no data) instaed of wave

if i loop 2048 times to fill at once graph is getting freeze, even if i select more channels(as in image on the right side showing showing 8 channels) data wont display

1 vote

To whom this may concern:

I have a Custom Renderable Series that I use to draws a polygon around the points on a scatter plot.

protected override void Draw(IRenderContext2D renderContext, IRenderPassData renderPassData)
    base.Draw(renderContext, renderPassData);

    var blobShellPoints = getBlobShellPoints();

    using (var polyPen = renderContext.CreateBrush(Colors.DodgerBlue, 0.3))
        var startCoordinates = getCoordinatesFor(blobShellPoints[0].X, blobShellPoints[0].Y);

        using (var blobDrawingContext = renderContext.BeginPolygon(polyPen, startCoordinates.X, startCoordinates.Y))
            foreach (var point in blobShellPoints)
                var pointCoords = getCoordinatesFor(point.X, point.Y);

                blobDrawingContext.MoveTo(pointCoords.X, pointCoords.Y);

I would like to know if there is some way to show a tooltip when the mouse hovers over the said drawn polygon. I don’t see any ability to do this after I finish creating the polygon or before the end of the encapsulated polyPen disposable. It should look something like the attached image.

Can you please advise? Thank you kindly for your response!

P.S. I realize some of this code may be obsolete since I’m using SciChart 5. If this is only possible in 6+ then that’s understandable.

  • Ari Sagiv asked 5 months ago
  • last active 4 months ago
Showing 1 - 50 of 3k results