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

Welcome to the SciChart WPF Charts Community Forums!

Please see our Question asking guidelines before posting. You can also find our WPF Charts Documentation here.
  – Thanks & regards, SciChart Team

0 votes
0 answers
7 views

What is the best way to add a label to the point marker? I was able to achieve this by creating a custom point marker and overriding the Draw method, but sometimes the spacing between the point marker and the text is a little off.

Here is what I did:

public override void Draw( IRenderContext2D context, IEnumerable<System.Windows.Point> centers )

looping through the centers and adding text

var size = _measuringGraphics.MeasureString( “my label”, new System.Drawing.Font( Core.Constants.UIConstant.GridFontFamily, 9 ) );
context.DrawText( new System.Windows.Rect( center, new System.Windows.Size( size.Width, size.Height ) ), Colors.Black, fontSize, “my label”);

Thanks,
Doug

0 votes
8 views

I have 2 series of data in my chart like this:

<s3D:SciChart3DSurface.RenderableSeries>

</s3D:SciChart3DSurface.RenderableSeries>

My question is, how can I bind multiple series to the RenderableSeries of the SciChartSurface instead, because that requires an ObservableCollection , which is not the same as the XyzDataSeries3D the series are being bound to.

0 votes
0 answers
9 views

I have created the following style for my charts legend:

   <Style  TargetType="{x:Type s:SciChartLegend}">
        <Setter Property="Background" Value="DarkGray"/>
        <Setter Property="ItemTemplate">
            <Setter.Value>
                <DataTemplate DataType="{x:Type s:XyzSeriesInfo}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                        </Grid.ColumnDefinitions>
                        <Ellipse Grid.Column="0" 
                              VerticalAlignment="Center"
                              Stretch="Fill"
                              Width="40"
                              Height="40"
                              StrokeThickness="3"
                              Stroke="{Binding ????, Converter={StaticResource SlitValveToBrushConverter}}" />
                        <TextBlock Grid.Column="1"
                                   Margin="5,0,10,0"
                                   HorizontalAlignment="Center"
                                   Text="{Binding SeriesName}" />
                    </Grid>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>

I want to bind the Stroke of my ellipse to the Z Value (the string part) of my DataSeries (property is called ChartItems) which is of type XyzDataSeries3D<DateTime, int, string>

How can I bind to the Z Value?

0 votes
0 answers
10 views

Hi,

How do I add meta data to a point in Heatmap2DArrayDataSeries? Lets say I’am displaying the price difference of various bonds in a heatmap and when I hover over a point, I need to display the bond names which the difference was derived from if that makes sense.

Iam looking for something similar to XYDataSeries Append(x,y,metadata).

Thanks,
-Tom

0 votes
12 views

I am trying to bind from my ViewModel to the DataSeries of a ScatterRenderableSeries3D, but no data is showing.

I am binding in this way:

My ViewModel has a property of type ObservableCollection<XyzDataSeries3D<DateTime, double, int>>. I can populate ChartItems, and see the data in it. The property is being notified of change as expected.

If I populate the DataSeries directly from code behind, it works, but not when being bound.

What am I doing wrong?

0 votes
0 answers
12 views

Does SciChart have the capability to produce Tornado Plots. I haven’t found any references to Tornado Plots, but require the capability to produce something like the following plot.

0 votes
0 answers
25 views

I’m trying to modify your VerticallyStackAxes example by setting the DrawMajorGridLines=”True” on each NumericAxis in the YAxes collection in XAML. However, only the first axis in the list has grid lines drawn. I also tried setting the IsPrimaryAxis=”True” for all of them as well, but it didn’t help. Note, in my application I’m using auto-ranging for all of the y axes.

0 votes
0 answers
22 views

Hi,

we are looking for a performant solution to display 2d (bitmap) images acquired from a 200+ fps live camera. Is it possible to use a mechanism from the charts to just display the images.
If possible we want hardware accelerated rendering and mouse drag and zoom. Since our dev-team is very new to SciChart any hints in the right direction would be appreciated,

Best,
MP

0 votes
0 answers
26 views

Hello,

I’d like to use the method GetService from the ServiceContainer class.
Is there a short description how to use it and where can I find the list of available services?
I can’t found the list at the stated position (see attached image or documentation).

0 votes
0 answers
32 views

I’m getting a Argument Exception with the message: An item with the same key has already been added.
This happens when I use the Rollover or Cursor Chart Modifiers.
Visual Studio is unable to evaluate the exception.

System.Transactions Critical: 0 : http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledUnhandled exceptionUBB3.exeSystem.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable
1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable
1 source, Func2 keySelector, Func2 elementSelector)
at Abt.Controls.SciChart.BaseRenderableSeries.NearestHitResult(Point rawPoint)
at Abt.Controls.SciChart.BaseRenderableSeries.HitTest(Point rawPoint, Boolean interpolate)
at Abt.Controls.SciChart.RolloverModifier.c361550073312ad3169f1a460aa44d307(Point c9fb04a4a0826429a55d599c809a4f6e6, Boolean c3791a1b71c1577bde30b55c12b2a5583)
at Abt.Controls.SciChart.RolloverModifier.OnModifierMouseMove(ModifierMouseArgs e)
at Abt.Controls.SciChart.ModifierGroup.c07d1dcb1c7ba461bbcbf5a1dd47c58a5(IChartModifier c6b1effd112e5355cd5f051dd91cd4f67, ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778)
at (Object , IChartModifier , ModifierMouseArgs )
at A.c4839d4bc452a3cc647260fc7e1ad10c1.c6dea473323fdce89c6d7460d087afc9c(Object c2e4dcf306e5d5e570ccc0d688db6e42c, IChartModifier c2e4dcf306e5d5e570ccc0d688db6e42c, ModifierMouseArgs c2e4dcf306e5d5e570ccc0d688db6e42c)
at Abt.Controls.SciChart.ModifierGroup.c9e8960a6a8527c20ac9e46e162c72b22(Action2 c4bd4ab823835cf92d221476b6fb65a17, ModifierMouseArgs c4c23d80d4d060e409c3479ef17d6c65e)
at Abt.Controls.SciChart.ModifierGroup.OnModifierMouseMove(ModifierMouseArgs e)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.ca5839647cb861fa726b3261de72c52c0(ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778, IReceiveMouseEvents c18509698be3f9366c690e7d2b107b62c, Boolean c3791a1b71c1577bde30b55c12b2a5583)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c7ca7af35639f570327394b11001b543a.c5980502f76d6e282773f80c5da0f84e7(IReceiveMouseEvents c133657388cc0f6f6615e21e129ac4b3a)
at A.c3631c672e3fc9e342ac08ff1a63d428e.cacf72b657252e3e73860afb89d70cb9f[c13c28af86f0b14202b9c7ef43b1bd11a](IEnumerable
1 c40a30a1bb6416cd164565919fdef15a9, Action1 c885aac61bc9832561b7ff07903c88d5e)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c6b7aec04ebfc28e092adf0e569761d15(Object cae49ecc8585f35e8dd5ce624f7fb7ab5, MouseEventArgs c4c23d80d4d060e409c3479ef17d6c65e)
at (Object , Object , MouseEventArgs )
at A.c5acf1f2ae72fe65952cbdccf2f5089f9.c6dea473323fdce89c6d7460d087afc9c(Object c2e4dcf306e5d5e570ccc0d688db6e42c, Object c2e4dcf306e5d5e570ccc0d688db6e42c, MouseEventArgs c2e4dcf306e5d5e570ccc0d688db6e42c)
at A.cd43732d305fa7b65b611005fdcef35d8.c769264f2530d8b47196e47cbbe58cb89(MouseEventArgs cbb39038dde40bfc3fdcfa70f4bbf8778)
at A.cd43732d305fa7b65b611005fdcef35d8.cbe8969038b3b47585f72b9c703cd47da(Object c5e18ac7ef25e3e9c51dc36756b25ed1e, MouseEventArgs c4c23d80d4d060e409c3479ef17d6c65e)
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&amp;amp; handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp;amp; handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp;amp; 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&amp;amp; 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 UBB3.App.Main()</StackTrace><ExceptionString>System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary
2.Insert(TKey key, TValue value, Boolean add)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2 keySelector, Func2 elementSelector)
at Abt.Controls.SciChart.BaseRenderableSeries.NearestHitResult(Point rawPoint)
at Abt.Controls.SciChart.BaseRenderableSeries.HitTest(Point rawPoint, Boolean interpolate)
at Abt.Controls.SciChart.RolloverModifier.c361550073312ad3169f1a460aa44d307(Point c9fb04a4a0826429a55d599c809a4f6e6, Boolean c3791a1b71c1577bde30b55c12b2a5583)
at Abt.Controls.SciChart.RolloverModifier.OnModifierMouseMove(ModifierMouseArgs e)
at Abt.Controls.SciChart.ModifierGroup.c07d1dcb1c7ba461bbcbf5a1dd47c58a5(IChartModifier c6b1effd112e5355cd5f051dd91cd4f67, ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778)
at (Object , IChartModifier , ModifierMouseArgs )
at A.c4839d4bc452a3cc647260fc7e1ad10c1.c6dea473323fdce89c6d7460d087afc9c(Object c2e4dcf306e5d5e570ccc0d688db6e42c, IChartModifier c2e4dcf306e5d5e570ccc0d688db6e42c, ModifierMouseArgs c2e4dcf306e5d5e570ccc0d688db6e42c)
at Abt.Controls.SciChart.ModifierGroup.c9e8960a6a8527c20ac9e46e162c72b22(Action
2 c4bd4ab823835cf92d221476b6fb65a17, ModifierMouseArgs c4c23d80d4d060e409c3479ef17d6c65e)
at Abt.Controls.SciChart.ModifierGroup.OnModifierMouseMove(ModifierMouseArgs e)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.ca5839647cb861fa726b3261de72c52c0(ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778, IReceiveMouseEvents c18509698be3f9366c690e7d2b107b62c, Boolean c3791a1b71c1577bde30b55c12b2a5583)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c7ca7af35639f570327394b11001b543a.c5980502f76d6e282773f80c5da0f84e7(IReceiveMouseEvents c133657388cc0f6f6615e21e129ac4b3a)
at A.c3631c672e3fc9e342ac08ff1a63d428e.cacf72b657252e3e73860afb89d70cb9f[c13c28af86f0b14202b9c7ef43b1bd11a](IEnumerable1 c40a30a1bb6416cd164565919fdef15a9, Action1 c885aac61bc9832561b7ff07903c88d5e)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c6b7aec04ebfc28e092adf0e569761d15(Object cae49ecc8585f35e8dd5ce624f7fb7ab5, MouseEventArgs c4c23d80d4d060e409c3479ef17d6c65e)
at (Object , Object , MouseEventArgs )
at A.c5acf1f2ae72fe65952cbdccf2f5089f9.c6dea473323fdce89c6d7460d087afc9c(Object c2e4dcf306e5d5e570ccc0d688db6e42c, Object c2e4dcf306e5d5e570ccc0d688db6e42c, MouseEventArgs c2e4dcf306e5d5e570ccc0d688db6e42c)
at A.cd43732d305fa7b65b611005fdcef35d8.c769264f2530d8b47196e47cbbe58cb89(MouseEventArgs cbb39038dde40bfc3fdcfa70f4bbf8778)
at A.cd43732d305fa7b65b611005fdcef35d8.cbe8969038b3b47585f72b9c703cd47da(Object c5e18ac7ef25e3e9c51dc36756b25ed1e, MouseEventArgs c4c23d80d4d060e409c3479ef17d6c65e)
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&amp; handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; 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&amp; 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 UBB3.App.Main()

0 votes
0 answers
37 views

Hello,

I would like to know if there is a possibility to export 3d charts to XPS format. I’ve tried using ExportToFile extension method:
sciChart.ExportToFile(filePath, ExportType.Xps, true);

While this method works well on 2d chart, it throws an exception:

InvalidCastException: Unable to cast object of type ‘SciChart.Charting3D.SciChart3DSurface’ to type ‘SciChart.Charting.Visuals.SciChartSurface’.

Stack Trace:
at SciChart.Charting.Visuals.SciChartSurfaceBase.CreateCloneOfSurfaceInMemory(Size newSize)
at SciChart.Charting.Visuals.SciChartSurfaceBase.ExportToFileInternal(String fileName, ExportType exportType, Boolean useXamlRenderSurface, Nullable`1 size)
at SciChart.Charting.Visuals.SciChartSurfaceBase.ExportToFile(String fileName, ExportType exportType, Boolean useXamlRenderSurface)

It suggests there is no way to export 3d charts, am I correct?

0 votes
63 views

Hello,

I’m struggling to remove the default chess-like background pattern of the surface to have a completely white panel with grid lines.

GridLinePanelStyle doesn’t seem to do the trick since it’s background property only changes the color but not the pattern.
I know there are many good SciChart tutorials but in this one particular matter they don’t seem to help me.

The funny thing is I already customized so many styles and templates, extended modifiers and annotations and now I’m failing at changing two colors.

Thanks in advance.

  • Sven A. asked 4 weeks ago
  • last active 3 weeks ago
0 votes
0 answers
53 views

My company is pondering buying the SciCharts suite and using the wpf chart for one of our flagship applications. I have a couple questions about what the control supports. Do the charts support users adding a note (tooltip) to a certain point on the line chart? How it works currently is the user right clicks on the chart, types in the note that they want to display and it creates a tooltip at the current position that they clicked on. Can this happen with SCIChart’s LineChart? We also have a need for them to be able to click on a certain point on the chart and drag the marker to another point and have it show the time between the two points. The last thing we need is to be able to click on a line and show statistics for that line (min, max, average, create data, active or not, formatting formula, etc…). I looked for examples of these and could not find them. Can you tell me if these features exist or are possible to implement dynamically? Thank you.

0 votes
0 answers
58 views

Hello,

Why there is no Support for Directx 11 and 12 in SciChart 2d?

Best Regards
Haiko

0 votes
92 views

Hi,

the handlers I’ve attached to my viewmodels (FastLineRenderableSeriesForMvvm) used in a chart do not trigger when I change the Stroke or IsVisible properties via bound controls.

Any ideas?

Thanks,

Stefan

0 votes
78 views

Is there any kind of a modifier that allows the pinch-equivalent of:

new YAxisDragModifier() { DragMode = SciChart.Charting.AxisDragModes.Scale }

Thanks,
Kevin

0 votes
69 views

Hi,

How can I disable CTRL or SHIFT while mouse-wheel scrolling pan behavior in XDirection?
the user can move the Chart with CTRL or SHIFT while mouse-wheel scrolling, I want to disable this at all.

Thanks.

  • Lio Ols asked 1 month ago
  • last active 3 weeks ago
-1 votes
0 answers
69 views

Hello,

I am using SciStockChart , when i haven’t specified below code in it, candle which is updating at runtime has annotation of his price on
Y Axis.
But with below code its not showing.

         <s:SciStockChart.ChartModifier >
                                        <s:ModifierGroup>

How can i add have both?

0 votes
59 views

If I set AutoRange = “Always” myHorizontalLineAnnotation draws fine. When I set it to “Never” – which I want – my HorizontalLineAnnotation won’t draw. How do I do this? ty

  <s:SciChartSurface.YAxis>
        <s:NumericAxis AutoRange="Never"
                       VisibleRange="{Binding ElementName=this, Path=YMinMax}"

        <s:HorizontalLineAnnotation HorizontalAlignment="Stretch"
                                    Y1="{Binding ElementName=this, Path=CurrentHigh}"
                                    Stroke="{Binding ElementName=this, Path=ToleranceColor}"
                                    StrokeThickness="1" />
0 votes
69 views

Hi,

I attached two images of what I need to do (easier than explaining it), I’m interested in the blue polygon, It could resemble the use of columns with the polar chart, but not quite, is there a simple way to do this or could someone point me to the right direction?

Thank you

Alex

0 votes
66 views

hi,
I serialize my xaxis and i see that XVisibleRangeLimit not serialized.
please help.

0 votes
76 views

hi,
Chart is not cleared even if RenderrableSeries is cleared.

I see that chart series are still plotted, but SeriesViewModel count for data context is 0.

Useful info : I see that legend SeriesInfo still has series data even after clearing.

Thanks.

0 votes
0 answers
96 views

Hi,
Been following this doc to color FastLineRenderableSeries datapoints but my series won’t show. Here is my OverrideStrokeColor after implementing the Interface

public Color? OverrideStrokeColor(IRenderableSeries rSeries, int index, IPointMetadata metadata)
    {
        ColorMetadata colorMetadata = metadata as ColorMetadata;
        if(colorMetadata == null) 
            return null;

        switch (colorMetadata.Color.ToLower().Trim())
        {
            case: blah blah
                       return Colors.blahblah

            default:
                return null;
        }
    }

And the metadata class

public class ColorMetadata : IPointMetadata
{
    public string  Color    {get; set;    }

    public ColorMetadata(string color)
    {
        Color = color;
    }

    public bool IsSelected { get; set; }

    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
}

And the series

<s:FastLineRenderableSeries Stroke="Green"  
                                        StrokeThickness="1" 
                                        PaletteProvider="{StaticResource pointColorProvider}"
                                        DataSeries="{Binding Source}">

Without forgetting (in UserControl.Resources)

 <pointColorProvider:ColorPaletteProvider x:Key="pointColorProvider"/>

and appending each point with its metadata
like dataSeries.Append(Date, data, new ColorMetadata(“green”));
All works great (without paletteProvider) except when I introduce PaletteProvider=”{StaticResource pointColorProvider}”. Tried with breakpoints in my PaletteProvider class, only OnBeginSeriesDraw gets hit, OverrideStrokeColor is never hit. Please help.

0 votes
66 views

Hello!

Is there way to create surfaces in different threads (on the same WPF Window) and then synchronize them via groups – methods SciChartGroup.SetVerticalChartGroup() and MouseManager.SetMouseEventGroup() ? Now i catch threads access error 🙁

Thanks!

0 votes
71 views

Hello,

I need help in adding multiple Horizontal Line Annotations to my chart.

My chart has multiple data series and hence the need for multiple annotations. I have the following code but it does not seem to work.

Not even one Annotation gets displayed.

Please help !

<s:SciChartSurface RenderableSeries="{Binding ChartRenderableSeries}" Annotations="{Binding ThresholdCollection}" >
            <s:SciChartSurface.XAxis>
                <s:DateTimeAxis  AxisTitle="Time" VisibleRange="{Binding Settings.XVisibleRange, Mode=TwoWay}" />
            </s:SciChartSurface.XAxis>
            <s:SciChartSurface.YAxis>
                <s:NumericAxis AxisTitle="Values" VisibleRange="-30,30" AutoRange="Always"/>
            </s:SciChartSurface.YAxis>



public ObservableCollection<HorizontalLineAnnotation> ThresholdCollection { get; set; }

Every time user adds a Threshold, the following code gets executed.

var threshholdObj = new HorizontalLineAnnotation
            {
                Name="Threshold" ,
                Y1 = 2,
                Stroke= System.Windows.Media.Brushes.Blue
            };
            ThresholdCollection.Add(threshholdObj);
0 votes
0 answers
74 views

Update: Please remove my previous question, I did not input the code correctly

I have a collection of line charts that use FastLineRenderableSeries, and they all share the same View.xaml. I’m trying to change the font size for the Y-axis tick labels in the view but for some reason it gets ignored.

This is the view for the container for all the charts:

<UserControl x:Class="....SciCharts.MainView"
<DockPanel >
    <Grid>
            <ItemsControl ItemsSource="{Binding ComponentCharts}" Grid.IsSharedSizeScope="True">
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <UniformGrid Rows="2"/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <ContentControl Content="{Binding}"/>
                        </Grid>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
    </Grid>
</DockPanel>

And this is the view for each individual line chart:

<UserControl x:Class="SciCharts.LineChartView"
<UserControl.Resources>
    <converters:BooleanToCollapsedVisibilityConverter x:Key="VisibilityConverter"/>
    <converters:ReverseBooleanToCollapsedConverter x:Key="ReverseVisibilityConverter"/>
    <Style x:Key="AxisLabelStyle" TargetType="s:DefaultTickLabel">
        <Setter Property="Foreground" Value="Black"/>
        <Setter Property="FontSize" Value="2.0"/>
        <Setter Property="HorizontalAnchorPoint" Value="Left"/>
    </Style>
</UserControl.Resources>
<DockPanel>
    <s:SciChartSurface RenderableSeries="{Binding LineChart.SeriesCollection}">
        <s:SciChartSurface.XAxes>
            <s:CategoryNumericAxis AxisTitle="Time" DrawMajorBands="False" AutoRange="Always" DrawLabels="True" />
        </s:SciChartSurface.XAxes>
        <s:SciChartSurface.YAxes>
            <s:NumericAxis DrawMajorBands="False" AxisAlignment="Left" AxisTitle="Rate" AutoTicks="True" AutoRange="Always" TickLabelStyle="{StaticResource AxisLabelStyle}"/>
        </s:SciChartSurface.YAxes>
    </s:SciChartSurface>
</DockPanel>

I’m able to change the color and the anchor point using the code above, but the font size is ignored completely. Tried setting it under NumericAxis but same result. Please let me know what can I do to achieve this.
Thanks,

0 votes
0 answers
79 views

I have a collection of line charts that use FastLineRenderableSeries, and they all share the same View.xaml. I’m trying to change the font size for the Y-axis tick labels in the view but for some reason it gets ignored.

This is the view for the container for all the charts:

<UserControl x:Class="….SciCharts.MainView"
…..

<ItemsControl.ItemsPanel>

</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>

</ItemsControl.ItemTemplate>

And this is the view for each individual line chart:

<UserControl x:Class="SciCharts.LineChartView"

</UserControl.Resources>


<s:SciChartSurface.XAxes>

</s:SciChartSurface.XAxes>
<s:SciChartSurface.YAxes>

</s:SciChartSurface.YAxes>

I’m able to change the color and the anchor point using the code above, but the font size is ignored completely. Tried setting it under NumericAxis but same result. Please let me know what can I do to achieve this.
Thanks,

0 votes
0 answers
74 views

Hi,

I have a chart with lot of annotations, for performance concern I used a custom renderable serie and custom point maker to display vertical line with text instead of using vertical annotations.

The text is displayed with context.DrawText in a custom point marker

The result is great, however I would like my text to be vertical.

Any idea on how to achieve this ?

Regards

0 votes
0 answers
68 views

I have a Chart with two Y-Axes, one on the left and one on the right for a SeriesvalueModifier.
i need to bind the VisibleRange to a Property in the ViewModel. Everything works fine, except for if i zoom via the MouseWheelZoomModifier.
It looks like the Chart gets “stretched” in Y direction. I guess the modifier zooms on both axes, so the property they are both bound to gets two updates, one for each axis.
When i bind the VisibleRange of Axis[A] to theVisibleRange of Axis[B] which is bound to the property also won’t work.
Do you have any idea how this could be fixed ?

what i want to achieve is this behavior:

https://www.scichart.com/questions/question/faq-how-to-have-two-yaxis-on-left-and-right-with-the-same-visiblerange-mirrored-yaxis

 Axis[A]
            <s:NumericAxis
                x:Name="NumericAxis_Mass"
                x:Key="NumericAxis_Mass"
                Id="NumericAxis_Mass"
                AxisTitle="{ext:Localization Chart_Axis_PartialPressure}"
                GrowBy="0.1,0.1"
                VisibleRange="{Binding YVisibleRange,
                                Mode=TwoWay,
                                UpdateSourceTrigger=PropertyChanged,
                                NotifyOnSourceUpdated=True,
                                NotifyOnTargetUpdated=True}" 
                AutoRange="{Binding AnalysesAutoRange_y,
                           Mode=TwoWay,
                           UpdateSourceTrigger=PropertyChanged,
                           NotifyOnSourceUpdated=True,
                           NotifyOnTargetUpdated=True}"
                AxisAlignment="Left"
                Style="{StaticResource Chart.NumericAxis.Style}" />

Axis[B]
                <s:NumericAxis
                x:Key="NumericAxis_Mass_Empty"
                x:Name="NumericAxis_Mass_Empty"
                GrowBy="0.1,0.1"
                TextFormatting="0.00E+00"
                VisibleRange="{Binding YVisibleRange,
                                Mode=TwoWay,
                                UpdateSourceTrigger=PropertyChanged,
                                NotifyOnSourceUpdated=True,
                                NotifyOnTargetUpdated=True}"            
                AutoRange="{Binding AnalysesAutoRange_y,
                           Mode=TwoWay,
                           UpdateSourceTrigger=PropertyChanged,
                           NotifyOnSourceUpdated=True,
                           NotifyOnTargetUpdated=True}"
                AxisAlignment="Right"
                Style="{StaticResource Chart.NumericAxis.Style}"
                DrawLabels="False"
                DrawMajorBands="False"
                DrawMajorGridLines="False"
                DrawMajorTicks="False"
                DrawMinorGridLines="False"
                DrawMinorTicks="False"
                Margin="35,0,0,0"
                Width="auto" />
  • Dirk Heyne asked 2 months ago
  • last active 2 months ago
0 votes
0 answers
87 views

I use VerticallStackedAxes of SciChart component and add 7 AxisMarkerAnnotation to each NumericAxis but AxisMarkerAnnotations not draggable except first of them.

this is the part of my UserControl code:

<s:SciChartSurface.YAxes>








</s:SciChartSurface.YAxes>

        <s:SciChartSurface.ChartModifier>
            <s:ModifierGroup>
                <s:RubberBandXyZoomModifier IsXAxisOnly="True"/>
                <s:ZoomExtentsModifier/>
                <s:CursorModifier ShowAxisLabels="False" ShowTooltip="False"/>
            </s:ModifierGroup>
        </s:SciChartSurface.ChartModifier>

        <s:SciChartSurface.Annotations>

            <!-- Draws Bands behind each axis -->
            <s:BoxAnnotation YAxisId="Ch0" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch0}" Y2="{Binding VisibleRange.Max, ElementName=Ch0}" Background="#11000000" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch1" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch1}" Y2="{Binding VisibleRange.Max, ElementName=Ch1}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch2" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch2}" Y2="{Binding VisibleRange.Max, ElementName=Ch2}" Background="#11000000" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch3" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch3}" Y2="{Binding VisibleRange.Max, ElementName=Ch3}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch4" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch4}" Y2="{Binding VisibleRange.Max, ElementName=Ch4}" Background="#11000000" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch5" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch5}" Y2="{Binding VisibleRange.Max, ElementName=Ch5}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch6" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch6}" Y2="{Binding VisibleRange.Max, ElementName=Ch6}" Background="#11000000" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch7" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch7}" Y2="{Binding VisibleRange.Max, ElementName=Ch7}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/>

            <s:AxisMarkerAnnotation X1="0.0" 
                                    Y1="0.0"
                                    YAxisId="Ch0"
                                    IsEditable="True"
                                    LabelTemplate="{StaticResource AxisMarkerTemplate}"
                                    PointerTemplate="{StaticResource DefaultAxisPointerTemplate}"/>

            <s:AxisMarkerAnnotation X1="0.0" 
                                    Y1="0.0"
                                    YAxisId="Ch1"
                                    IsEditable="True"
                                    LabelTemplate="{StaticResource AxisMarkerTemplate}"
                                    PointerTemplate="{StaticResource DefaultAxisPointerTemplate}"/>
        </s:SciChartSurface.Annotations>

You can find source code Here
thanks

0 votes
97 views

I use a scatter series that contains around 200,000 data points and I noticed that in the DirectX assisted rendering mode (not sure it also applies to the normal non DirectX mode) scatter points are sampled, meaning, not all scatter points are visible on the chart surface.

How can I turn that off to display all data points even if that may affect performance? I chart financial time series and the chart often shows discrete jumps when there are actually many data points in between when zooming in.

Thanks

  • bbmat asked 2 months ago
  • last active 2 months ago
0 votes
97 views

It seems that if the axis is collapsed, all associated annotation labels are not visible (but their annotation line is visible).
Is there property or the like that will allow labels to be shown which are associated with a collapsed axis?

0 votes
109 views

I have introduced a real time chart in my WPF Application. The chart starts plotting points from the left of the chart ( close to Y-Axis).

I would like it to start plotting from the right of the chart ( Away from Y-Axis) and as when points start adding up, I would like the points to slide to the left ( Towards Y-Axis).

Similar to how performance tab in Task Manager displays the CPU utilization.

0 votes
0 answers
100 views

Hi
I have a chart with a strange behavior, does anyone know why it happens?
here is a GIF: https://ibb.co/i3NPLQ

  • Lio Ols asked 2 months ago
  • last active 2 months ago
0 votes
121 views

Hi SciCharters,
I would like to create a color coded 2D scatter plot.
My approach is the IPointMarkerPaletteProvider interface. It works, but I have experienced a huge performance difference when I individually colored every datapoint of my 2D chart and using a static color.
When I use the same provider but only a single color there is no performance issue at all.

Here is the relevant code of my PointMarkerPaletteProvider interface:

 public PointPaletteInfo? OverridePointMarker(IRenderableSeries rSeries, int index, IPointMetadata metadata)
    {
            var myMetaData= metadata as MyRecordMetadata;
            var colorBarPosition = GetColorBarPosition(myMetaData.PlotValue);

            _pointMarkerColorOverrides.Fill = _ColorBar[colorMapPosition];
            _pointMarkerColorOverrides.Stroke = _ColorBar[colorMapPosition];
             return _pointMarkerColorOverrides;
    }

The _ColorBar contains only 256 values and the Color is selected according to the myMetaData.PlotValue in GetColorBarPosition().
The series is plotted as expected, but it takes “ages”(seconds for 4000 data points) for rendering it on the chart.
If I replace the assignments of _pointMarkerColorOverrides.Stroke and _pointMarkerColorOverrides.Fill with one static color, there’s no performance issue at all.

I was just curious if that is the expected behaviour? Would it be better (in terms of performance) to switch to another chart type (e.g. heatmap chart) to plot color coded values?

  • Tim asked 2 months ago
  • last active 2 months ago
0 votes
117 views

In our view model, the data range is expanded to include data outside of the X-Axis range. This is done to preserve the spline curve which is defined by previous points– doing this prevents the spline curve from changing drastically by including X number of points outside the range.

When the Draw function is called, the point context that was bound in is filtered to the X Axis range which leads to the spline curve changing as you pan (especially noticeable if it affects a peak).

How can I change this behavior to preserve the spline line?

Updated — Setting ResampleMode = None does not give me all the points.

1 vote
110 views

Hi
Here’s my XAML:

                <s:SciChartDonutSurface ChartTitle="Times Distribution" ItemsSource="{Binding TimeGroups}">
                    <s:SciChartDonutSurface.ItemTemplate>
                        <DataTemplate DataType="s">
                            <s:DonutSegment SegmentValue="{Binding Path=Duration}" Text="{Binding Path=Name}"/>
                        </DataTemplate>
                    </s:SciChartDonutSurface.ItemTemplate>
                </s:SciChartDonutSurface>

And I have correctly created ObservableItems named TimeGroups, with properties Duration and Name.

I’m not seeing a thing…

What am I doing wrong?

Thnanks

1 vote
0 answers
104 views

I have a chart that uses datapoint selection on an XyScatterRenderableSeries. This series is defined as follows:

             <s:XyScatterRenderableSeries DataSeries="{Binding ChartData.SinglePointUnavailableResources}" 
                                    Stroke="CornflowerBlue" 
                                    StrokeThickness="4"
                                    modifiers:FilteringLegendModifier.IncludeSeries="False">
                <s:XyScatterRenderableSeries.PointMarker>
                   <s:EllipsePointMarker Fill="CornflowerBlue" Width="4" Height="4"/>
                </s:XyScatterRenderableSeries.PointMarker>
                <s:XyScatterRenderableSeries.SelectedPointMarker>
                   <s:EllipsePointMarker Fill="Yellow" Width="13" Height="13"/>
                </s:XyScatterRenderableSeries.SelectedPointMarker>
             </s:XyScatterRenderableSeries>

This works as expected, however I am getting broken binding warnings in my debug output window as follows:

System.Windows.Data Warning: 4 : Cannot find source for binding with reference ‘RelativeSource FindAncestor, AncestorType=’SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries’, AncestorLevel=’1”. BindingExpression:Path=Opacity; DataItem=null; target element is ‘EllipsePointMarker’ (Name=”); target property is ‘Opacity’ (type ‘Double’)
System.Windows.Data Warning: 4 : Cannot find source for binding with reference ‘RelativeSource FindAncestor, AncestorType=’SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries’, AncestorLevel=’1”. BindingExpression:Path=Stroke; DataItem=null; target element is ‘EllipsePointMarker’ (Name=”); target property is ‘Fill’ (type ‘Color’)
System.Windows.Data Warning: 4 : Cannot find source for binding with reference ‘RelativeSource FindAncestor, AncestorType=’SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries’, AncestorLevel=’1”. BindingExpression:Path=Stroke; DataItem=null; target element is ‘EllipsePointMarker’ (Name=”); target property is ‘Stroke’ (type ‘Color’)
System.Windows.Data Warning: 4 : Cannot find source for binding with reference ‘RelativeSource FindAncestor, AncestorType=’SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries’, AncestorLevel=’1”. BindingExpression:Path=AntiAliasing; DataItem=null; target element is ‘EllipsePointMarker’ (Name=”); target property is ‘AntiAliasing’ (type ‘Boolean’)

You get the same warnings in your “PointMarkers Selection” sample.

They seem to be internal to scichart. I realise this doesn’t effect the functionality, but we generally try and avoid these in our codebase if possible, so ones that do occur are easily spotted and any potential bugs can be identified early.

Is there any way to prevent these warnings coming from scichart?

thanks

Bill

3 votes
0 answers
132 views

Hi there!
I successfully build trader chart from nice example “2D Charts -> Create Stock Charts -> Using SciStockChart”.
Then I had to draw line on the chart with candles, but the problem was, that the line didn’t have data on some dates (there is data for lots of candles, but for the red line there is only 4 points: A,B,C,D), and result i want in shown here (solved):
Result i want image

Axes:
XAxis: CategoryDateTimeAxis (Dates)
YAxis: NumericAxis (Prices)

Series:
Candles: FastCandlestickRenderableSeries (OhlcDataSeries<DateTime, double>)
Red Line: FastLineRenderableSeries (XyDataSeries<DateTime, double>)

Problem:
CategoryDateTimeAxis type ignores the XAxis values for computation of x-coordinate, and choosing only the index of the value instead. CategoryDateTimeAxis vs DateTimeAxis. I have N-number of candles and only 4 values for red line. How to receive line with no gaps, with points on their places (dates on X-axis) ? I can’t use simple DateTimeAxis, because candles don’t draws.

Solution:
1) Use double.NaN for each date (x-axis value) if no data for the red-line on date given.
2) In FastLineRenderableSeries set DrawNaNAs = LineDrawMode.ClosedLines (if don’t use this flag, you will receive something like this: WPF Chart Gaps (Nulls) in Series

Thanks a million to Julia Skorobogata from SciChart!

0 votes
144 views

I can’t seem to find any easy way to find all my questions.

0 votes
101 views

I’m currently trying to adapt an example to post here as an example repro– But in the meantime I figured I’d post and see if there are any fundamental problems with trying to do this.

The exception message states:

Additional information: Cannot get data-value from coordinate as the associated Axis is null
0 votes
106 views

Looking at the documentation I’ve figured out how to style the content of the tooltip. But I can’t seem to figure out how to style the container.

You can see in the attached image the automatic blue background that matches the series. I would like to style it with our own style which is the dark background and then BorderBrush that matches the series color.

<DataTemplate x:Key="DigitalToolTipTemplate" DataType="s:XySeriesInfo">
                    <Border Style="{StaticResource BorderStyle}" BorderBrush="{Binding Stroke}">
                        <TextBlock Text="{Binding SeriesName, StringFormat='{}{0}'}" />
                    </Border>
                </DataTemplate>

This seems to style only the inner contents of the tooltip but not the whole tooltip.

Also note the BorderBrush binding (not sure if this is correct to get the series color).

Update
Now using the following code (which is working) — Now the only thing I need to figure out is what to bind for the stroke to get the series color as the border stroke.

<Style x:Key="DigitalToolTipStyle" TargetType="s:TooltipControl">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="s:TooltipControl">
                                <Border Style="{StaticResource BorderStyle}" BorderBrush="{Binding Stroke}">
                                    <ContentPresenter Content="{TemplateBinding DataContext}" ContentTemplate="{TemplateBinding ContentTemplate}"/>
                                </Border>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
0 votes
0 answers
100 views

Hi there,

I am having a few issue with an application using the SeriesBinding and IRenderableSeriesViewModel.

As a small back ground, I have an application which has a number of tabs, two of which have independent charts (one tab has 4 charts in it, the other just 1).

When I am focused on first (main) tab, and update the DataSeries, the chart in the other tab (secondary) is not updated. After this point it doesnt seem to matter if I focus on the secondary tab again, the data just wont refresh.

I was using 4.2.4.10343, but rolled back to 4.2.3.10206 (just a random step backwards) which seem to fix this issue, so maybe there is a bug that’s crept in in the last few releases? If so, it seems to be that the loss of focus / lack of visibility of the chart being updated means that the SeriesBinding is no longer valid?

Also, in my main chart (see below) I am using a CustomAnnotationChartModifier similar to that described here, and although the rollback to 4.2.3.10206 fixes the issue of the plots not redrawing, it is the case that the custom annotations are not automatically positioned when the control has no focus (more likely because it is not visible). This is the same going back to at least version 4.2.2.9381.

For info the SimulationResultViewModel.RenderViewModels object is an ObservableCollection of IRenderableSeriesViewModels populated with LineRenderableSeriesViewModels with simple XyDataSeries.

<SciChart:SciChartSurface Name="chart" Grid.Row="0" Grid.Column="0"
                              GridLinesPanelStyle="{StaticResource GridLinesPanelStyle}" SciChart:ThemeManager.Theme="BrightSpark"
                              RenderableSeries="{SciChart:SeriesBinding SimulationResultViewModel.RenderViewModels}"
                              viewModels:Injector.PassSurfaceToViewModel="True"
                              PreviewMouseDown="chart_MouseDown"
                              PreviewMouseUp="chart_MouseUp">

        <SciChart:SciChartSurface.XAxis >

            <SciChart:NumericAxis x:Name="xAxis" AxisTitle="Lap Number" DrawMajorBands="False" LabelProvider="{StaticResource CustomXAxisLabelFormatter}" GrowBy="0.02, 0.02" AutoRange="Once" VisibleRange="{Binding SimulationResultViewModel.XAxisVisibleRange, Mode=TwoWay}"/>
        </SciChart:SciChartSurface.XAxis>
        <SciChart:SciChartSurface.YAxis>
            <SciChart:NumericAxis x:Name="yAxis" AxisTitle="Time" DrawMajorBands="False"  AxisAlignment="Left" LabelProvider="{StaticResource CustomYAxisLabelFormatter}"  GrowBy="0.05, 0.05" AutoRange="Once" VisibleRange="{Binding SimulationResultViewModel.YAxisVisibleRange, Mode=TwoWay}"/>
        </SciChart:SciChartSurface.YAxis>


        <SciChart:SciChartSurface.ChartModifier>
            <SciChart:ModifierGroup>

                <viewModels:CustomAnnotationChartModifier x:Name="customAnnotations" LabelsSource="{Binding SimulationResultViewModel.ChartLabels}"/>

                <SciChart:RolloverModifier Name="rollover" SourceMode="AllSeries" DrawVerticalLine="True" ShowTooltipOn="{Binding SettingsManager.ShowToolTipOptions}"/>

                <SciChart:ZoomPanModifier ReceiveHandledEvents="True" ClipModeX="None"/>
                <SciChart:MouseWheelZoomModifier x:Name="mouseWheelZoomModifier"/>
                <SciChart:RubberBandXyZoomModifier x:Name="rubberBandZoomModifier" IsEnabled="True" IsXAxisOnly="False" ZoomExtentsY="False" IsAnimated="True" ExecuteOn="MouseRightButton"/>
                <SciChart:ZoomExtentsModifier x:Name="zoomExtentsModifier" ExecuteOn="MouseDoubleClick"/>

                <SciChart:TooltipModifier Name="tooltip" IsEnabled="True" UseInterpolation="False" TooltipLabelDataContextSelector="{Binding TooltipDataContext}" ShowTooltipOn="{Binding SettingsManager.ShowRollOver}" />


            </SciChart:ModifierGroup>
        </SciChart:SciChartSurface.ChartModifier>


    </SciChart:SciChartSurface>
0 votes
125 views

Hi All,

Are there any examples of a 3D column chart where the Axis are prevented from overlapping the data? Also want to add a cursor and be able to select a column. I’m using NumericAxis3d and LogarithmicNumericAxis3D.

Thanks
Mark.

0 votes
136 views

Hi,

I have an application where I can potentially create, plot and export (as png) hundreds of graphs. It all runs smoothly but the “ExportToFile” method of the SciChartSurface. It seems to never de-allocate the memory it uses even after disposing the SciChartSurface itself. After a few hundred graphs, the application ends up using 70Gb+ of ram but if I just comment out the ExportToFile line, the application never uses more than 2Gb of ram (as expected).

I’ve tried putting:
GC.Collect();
GC.WaitForPendingFinalizers();
…both after the ExportToFile and after disposing the graphs, but it makes no difference.

Has anyone experienced this issue? Is there anything else that I can try?

Thanks
/Daniel

0 votes
117 views

I’m looking to either extend the RubberBandXyZoomModifier to provide this size growing behavior when the mouse has left the chart area (shown in the attached image) or build one from scratch (having to rebuild the normal box-zoom components (the box etc).

I assume from reading around the the latter option will be the only option.

Thanks!

0 votes
142 views

I have two charts (separate SciChartSurface via SciChartGroup) stacked on top of each other. Each chart has its own X-Axis and both charts’ mouse interaction are linked via MouseGroupId. All fine so far.

I then generate a lineseries ‘series1’ on the first surface, 1000 datapoints, time stamps are 1 minute apart. I also generate a second line series ‘series2′ on the second surface, but this series’ first time timestamp start 2 hours later than the first series.

Expected behavior is that the series2 will be shifted by 2 hours and not start at the same position as series1 but rather extend by 2 hours. That is, however, not the case on my chart.

What is wrong here and is this a potential bug?

I need both XAxes to be perfectly aligned, meaning the cross hair label on each XAxis displays the exact same time stamp. Please note that I customized the LabelProvider to display milliseconds also, but I use the same Label Provider for both charts, so no difference here.

Can someone please chime in what is going on?

Please see attached charts to illustrate what I have been describing (screenshot1 shows intended behavior but on the same chart, I want this behavior to occur on separate panes/charts). Screenshot 2 describes the problem I am having.

Thanks

  • bbmat asked 3 months ago
  • last active 2 months ago
1 vote
132 views

I have multiple series on a chart surface, each with their own y-axis. I do not want to display all y-axes as this would take up half the chart surface.

Is there a way to make the matching y-axis only visible when the mouse cursor hovers over a series (hit-test)? How would I go about that?

Thanks
Matt

  • bbmat asked 3 months ago
  • last active 2 months ago
0 votes
130 views

I’ve got a few questions about plotting Lat/Long coordinates in real time.

Situation
I’ve got two data series – (Timestamp, Latitude) & (Timestamp, Longitude) being updated 10 times/second. My goal is to graph car position in real time with a ScatterRenderableSeries and color each point according to other channels of data (temp, brake pressure, yaw rate, etc..).

How to best associate metadata?
In order to color the plotted points I need to be able to associate them with their respective timestamps. Do you have any advice on how best to do so? It seems the most obvious solution is using the PointMetaData API, but I’m curious if there would be a more efficient solution (like say somehow using an Xyz/Xyy DataSeries).

Dealing with the unsorted nature of the data?
I’m aware that SciChart performs much better when only inserting sorted data into a XyDataSeries. Seeing as I only receive GPS data 10 times/sec, I’m wondering if you think the lost performance will still pose a problem?

I’d appreciate any advice you could give!

0 votes
191 views

Hi I currently do need to get two things for which I currently have no clue how to get it.

I’m using FastLineRenderableSeries and XyDataSeries<double,double> in SciChart 2D.

1st: The absolute min and max values from an curve.

What I found is that I can get the YMax/YMin and XMax/XMin, but that is not what I need.

-> I need to get the “Point” (x, and y value) where the maximum/minimum is.

2nd: I Need the X-value of an Y-Value (or the list of x-values if the y-value does exist more than once).
Lets say I have the y-Value “5” and want to know at which x-value this is.

Is there a fast and elegant way to get this information from existing RenderableSeries via the SciChart API, or Do I need to get this information from my data source before appending the curves?

Thanks,
Ben

  • Bernd Held asked 3 months ago
  • last active 2 months ago
Showing 1 - 50 of 2k results