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

1 vote
7k views

I would like to stop the user from trying to load datas that are so large that when zoomed out it becomes confusing. I thought that we could use the none resampling mode but that means that the chart would load all data points and I think that this could affect performance. No matter the resampling mode, eventually the dataset will be so large that if the user zooms out, the chart will display a confusing image.

What is the best practice for this type of situation? I was thinking that perhaps we should limit the zoom based on data size. Perhaps there is a better idea out there?

Thanks!

  • ryan01 asked 6 years ago
  • last active 6 years ago
0 votes
3k views

Hi.
I’m in process optimizing my app.
I’m using Objective-c.

I’d found some memory leaking issues and successfully fixed some of that.

A first issue was about ‘renderableSeries’ under ‘SCIChartSurfaceView’.
If you set class of UIView as ‘SCIChartSurfaceView’ in interface builder and make outlet without setting ‘strong’ or ‘weak’ in .m file,
It never get released automatically and will stay retained on memory.
For me, it caused about 90MB of memory leaking.
But I could solve this issue manually by putting -(void)clear; method of renderableSeries in viewWillDisappear method.

Another issue is about ‘SCIDateTimeDeltaCalculator’ and ‘SCINumericDeltaCalculator’.
It causes about 50MB of memory leaking.
But problem is, I couldn’t find neither where it’s been called nor how I release this manually.

I will be waiting for your answer.

Thanks.

+)
(lldb) po SciChartVersionNumber
0x3ff0000000000000

(lldb) po SciChartVersionString
0x474f525029232840

I wanted to know what version I’m using.. but i couldn’t know… what version am i using..?

1 vote
5k views

Dear Support, I have SciChartSurface in fragment (Xamarin Android). I added Xaxis (DateAxis), Yaxis (NumericAxis), standard modifiers and few XyDataSeries as FastLineRenderableSeries. Everything is working fine (screenshot 1). But something strange is happen when fragment with chart is Paused -> Stopped and then Started -> Resumed. Xaxis and Yaxis are not visible. All dataseries are not visible. But I debugged and all data is there. Even rolloverModifier is still working and correct data values are displayed in labels (screenshot 2). It does not happen every time – it depends on what external intent stopped fragment.

I’ve tried reinitialize chart (clear Xaxis, Yaxis, remove modifiers, remove renderableSeries are reinit all with new variables) and it does not help. Only fragment dettach -> attach helps or screen orientantion change (it reinitializes fragment)

Could you tell me any suggestion what can I check or how to force to redraw whole SciChartSurface? (hiding it and showing it does not help – effect is the same. Only fragment dettach and attach helps (this is my workaround at the moment).

0 votes
0 answers
9k views

Hi Andrew, Support Guys,

I have a little question.
In my chart i have a chart series XyScatterRenderableSeries DateTime, float which is working fine, on it i have placed the standard tooltip :

……

where i am showing SeriesName, YValue, XValue.

The question is: in my Dataseries i would like to add to every datapoint additional info like IDNum, Value , etc. and then be able to show this additional info when using the tootip on that point in the chart toghether with the ones already shown.

Which could be the correct approch to achieve this?

Another question…..
I am looking also on the multiple X-Axes example where you are placing top and bottom Axis.
My problem is that in my Dataseries i have two DateTime values for one point , i.e if i have a value 1.1/1-feb-2014/StartTime(0) then sencond point will have value 1.2/1-Feb-2014+1hour/StartTime(0)+1hour…. and so on. The goal is to show theese two different datetime XAsis for the same points.How can this be done ?
Is it also possible to have theese two different X-Axes both on the bottom of the chart.

Many Thanks

Cheers
Giuseppe

  • jp13 asked 8 years ago
0 votes
875 views

Hi there,

Do you support colour legend for Heatmap in Java Script? Can you please point me to where it is documented if you do.

Thank you

  • Ihab Skafi asked 11 months ago
  • last active 11 months ago
0 votes
4k views

Hi,

I am trying to rotate a column chart exactly like the vertical chart example with one important distinction. I would like to have the values display bottom left (low) to top right (high) for both axes. I have price (x axis) on the left and volume (y axis) on the bottom. If I simply change AxisAlignment, I end up with price going from high (bottom) to low (top) and volume going from high (left) to low (right).

The Y axis (on the bottom due to the alignment) left to right goes from 100 to 0 instead of the desired 0 to 100. The same issue exists for the X axis.

0 votes
851 views

Hello,

As you have already the examples of the EEG -50 channel, Is it possible to set the sensitivity factor for the channels to show the graph.
Basically, this will set the amplitude based on the frequency variation example 7micro volts/millimeter (7microvolts/mm) for each channel. Is there any way we can do it using Scichart, please let us know.

Appreciate your help

Regards,
Aditya

0 votes
4k views

Dear all,

I need to display an histogram on a graph, but by my understanding an histogram is nothing else that Column representation of data.
So far in my graph I have create ColumnRenderableSeriesViewModel same as in the Histogram sample.

Then by browsing the object I have seen their are also an HistoBarRenderableSeriesViewModel and a FastHistoBarRenderableSeriesViewModel

What is the real difference between those and which do you suggest to use ?

What the Fast prefix means and affect to ?

thanks for clarification
regards

  • sc sc asked 4 years ago
  • last active 4 years ago
0 votes
6k views

Hi guys,

I am having difficulties setting the background of my bar chart with SCICategoryDateTime X axis since I switched to 2.0.

As far as I understand, just setting the background property of the SCIChartSurface should suffice.
These are all of the things I’ve tried:

1. [self.barSurface setBackgroundColor:[UIColor clearColor]];
2. [self.barSurfaceView setBackgroundColor:[UIColor clearColor]]; 
3. self.barSurface.renderableSeriesAreaFill = [[SCISolidBrushStyle alloc] initWithColor:[UIColor clearColor]];
4. [self.barSurface.renderSurface setIsTransparent:YES];

I didn’t find any other way of setting it, but it still remains black. Any thought on what might cause it?

EDIT: I just found out about this color setting:

[axisStyle setGridBandBrush:[[SCISolidBrushStyle alloc] initWithColor:[UIColor whiteColor]]];

The result I got was a black and white chess board, as shown on the attached picture. I really don’t understand this behaviour. If I set this gridBandBrush to nil, columns are coloured with random colours, so the chart looks like a rainbow. I understand why is this happening but shouldn’t there be a default colour in case brush is nil?

EDIT 2: While debugging using “Capture view hierarchy” in XCode I discovered that render surface is actually white inside debugger. Perhaps it will give more insight to you, it doesn’t mean much to me – I guess it’s because rendering is done on GPU and the context is not available to the debugger.

Best,
Igor

  • Igor Peric asked 5 years ago
  • last active 5 years ago
1 vote
2k views

I get the following output in my console:

Visual Xccelerator Engine v6.2.1.13304

GPU Capability Test ### Is BGRA feature required: TRUE

Examining Graphics Adapter: Intel(R) UHD Graphics 620 VRAM: 128Mb
DeiceId: 22807

Visual Xccelerator Engine Direct3D9 Compatibility
Determines whether the adapter is blacklisted due to its unstable work… FALSE
Trying to create Direct3D9 Device… SUCCESS

Visual Xccelerator Engine Direct3D11 Compatibility
Trying to create Direct3D9Ex Device (WPF Compatibility)… SUCCESS
Trying to create Direct3D11 Device… SUCCESS

Rank: 2100128 Points

Selected Graphics Adapter, where DeviceId is: 22807 Is Direct3D9
Supported: TRUE Is Direct3D11 Supported: TRUE Is Blacklisted:
FALSE

Hey this is SciChart here. Please help! Your GPU is too slow for my
awesome graphics software! I detected you have an Intel(R) UHD
Graphics 620 GPU. Please upgrade it because I’m feeling very
constrained by 128MB of Video RAM. My super-powerful Visual
Xccelerator engine can do so much better with 256MB+ of video memory.
THX! 😀

Is there a way to suppress this so it doesn’t show up? I use trace output to capture diagnostics in my application and this is showing up in the log.

  • Doug Witt asked 2 years ago
  • last active 2 years ago
0 votes
4k views

I need MouseWheelZoomModifier to work only when I pressed mouse button. I wrote:
<s:MouseWheelZoomModifier ExecuteOn="MouseRightButton" />
But it all the same executing when I’m not pressing mouse button. Why?

0 votes
6k views

Hello,

I am unable to install SciChart pod.
The podfile has multiple pods with multiple platforms and source.
I get the error saying ” [!] Unable to find a specification for ‘SciChart’.”
Please advice..

use_frameworks!

pod 'UICircularProgressRing'
pod 'Alamofire'

platform :ios, '8.0'
source 'https://github.com/CocoaPods/Specs.git'

pod 'SideMenu'

source 'https://github.com/ABTSoftware/PodSpecs.git'
pod 'SciChart', :git => 'https://github.com/ABTSoftware/PodSpecs.git'
0 votes
4k views

We are getting a NullReferenceException at OnRenderSurfaceBaseLoaded(Object sender, RoutedEventArgs e) in Direct3D10RenderSurface.

On calling:

if (Direct3D10CompatibilityHelper.SupportsDirectX10)
        {
            // quickest one and optically on par with high quality or xaml rendering
            return new Direct3D10RenderSurface();
        }

System:
Windows 8: Version 6.2.9200.0
CLR version: 4.0.30319.42000

see Stacktrace:


Stack trace

System.NullReferenceException: Object reference not set to an instance of an object.
----------------------------------------------------------------------
at SciChart.Drawing.DirectX.Context.D3D10.Direct3D10RenderSurface.OnRenderSurfaceBaseLoaded(Object sender, RoutedEventArgs e): 
----------------------------------------------------------------------
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised): 
----------------------------------------------------------------------
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args): 
----------------------------------------------------------------------
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent): 
----------------------------------------------------------------------
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root): 
----------------------------------------------------------------------
at MS.Internal.LoadedOrUnloadedOperation.DoWork(): 
----------------------------------------------------------------------
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks(): 
----------------------------------------------------------------------
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks(): 
----------------------------------------------------------------------
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget): 
----------------------------------------------------------------------
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget): 
----------------------------------------------------------------------
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): 

Any help?

1 vote
0 answers
7k views

Hi,

I think I have found a bug. If LegendModifier has Margin (i.e. 10) it forces ModifierGroup to grow to VisibleWidth/Height 20×20. Than you can clearly see that the modifier group is placed outside the “chart area” and creates additional “topleft margin”.

Setting Grid.Row=”3″ and Grid.Column=”2″ on ModifierGroup looks like a fix.

Thanks

0 votes
5k views

I would like to implement a custom DateTime axis LabelProvider with the following behavior:

  • Show full date and time at the start of the visible region
  • Show only time on all other ticks unless the date changes from the previous tick.

So, an axis might look like:

10/01/2016 23:00 23:30 10/02 00:00 00:30 01:00

It seems this is doable as long as 00:00:00 appears as one of the label values, but I’m not sure l can be guaranteed. It is likely that none of the entries in the series would contain that exact value. One entry might be 23:59:17 and the next 00:01:13.

Is there any way for a LabelProvider to determine what the preceding label value was?

Bill

0 votes
6k views

I found how to change the axis tick label FontWeight in the XAML code by creating a Style, but is there a way to change the axis tick label FontWeight property in the code behind (MainWindow.xaml.cs)?

The reason I want to be able to do this is that I prefer to create the axis in code. Here is how I set up the XAxis in code:

        double xDelta = 10.0;
        sciChart.XAxis = new NumericAxis();
        sciChart.XAxis.AxisAlignment = AxisAlignment.Bottom;
        sciChart.XAxis.DrawMajorBands = true;
        sciChart.XAxis.FlipCoordinates = false;
        sciChart.XAxis.GrowBy = new DoubleRange( -xDelta, xDelta );
        sciChart.XAxis.TextFormatting = "#0";
        sciChart.XAxis.VisibleRange = new DoubleRange( m_MinX - xDelta, m_MaxX + xDelta );
        sciChart.XAxis.VisibleRangeLimit = new DoubleRange( m_MinX - xDelta, m_MaxX + xDelta );
        sciChart.XAxis.AxisTitle = "X-Axis";

It would be nice to be able to set the Font and FontWeight in the code as well.

Thanks,
Dave

  • Dave Leach asked 6 years ago
  • last active 6 years ago
0 votes
4k views

Hello, right now when I click a previously selected series I get the series unselected, I’d like to keep it selected (ignore mousedown). I want to deselect it only when I click on an empty chart surface or another series, how can I accomplish this?

Thanks

0 votes
2k views

I have followed the example at: https://www.scichart.com/documentation/ios/current/legend-modifier.html for creating a legend with a custom item.

The initial problem I am trying to solve is that the default legend has a black background but my chart is white. If I set the background of the legend to white, this is a problem because the series text is white, so you can’t read it any longer. Therefore in order to have a legend with a white background to match my chart, I needed custom legend items to be able to set the series text color to black.

I have created my ChartLegendCell.swift file based on the example and my ChartLegendCell.xib which has a UIView and a UILabel. I incorporate these into my code exactly as in the example. However the legend does not show up upon render. I added a breakpoint inside the ChartLegendCell.swift class and I see bindSeriesInfo method called twice per series. What I noticed is that the first time it is called, printing out self.bounds shows (0,0,230,35) which is correct, but the second time it is called self.bounds is (0,0,0,0).

Is there more code which needs to be added in the ChartLegendCell.swift to make sure the width and height aren’t 0?

  • Brad Taber asked 2 years ago
  • last active 2 years ago
0 votes
4k views

Hi,

I’m currently testing the 3D charts of scichart, if we can use it for our next project. I have to build up a chart, that looks like that attached ref.jpg. I’m currently using the MountainRenderableSeries3D and I get the data displayed in the way it should be, beside the area below the curve (see screenshot.jpg).

Is it possible to fill the area below the curve? Which kind of RenderableSeries3D do I Have to use?

Thanks!

0 votes
3k views

Hi!

I’ve created my own modifier to do this and it was working perfectly in a previous version. It allowed dragging annotations and without events. Now it doesn’t catch events from the pan actions, but caches events from annotation editing.

class CustomPointSelectionModifier : SeriesSelectionModifier
{
    /// <inheritdoc />
    public override void OnModifierMouseUp(ModifierMouseArgs e)
    {
        base.OnModifierMouseUp(e);
        var xcalc = ParentSurface.XAxes.First().GetCurrentCoordinateCalculator();
        var ycalc = ParentSurface.YAxes.First().GetCurrentCoordinateCalculator();

        var poistionPoint = ParentSurface.RootGrid.TranslatePoint(Mouse.GetPosition((IInputElement)ParentSurface), ModifierSurface);
        var point = new Point()
        {
            X = xcalc.GetDataValue(poistionPoint.X),
            Y = ycalc.GetDataValue(poistionPoint.Y),
        };

        ((PlotBaseDescription)DataContext).OnMouseUp(e, point);
    }
}   

It is demonstrated in the attached example

Hot to achive it now?

Thanks.

0 votes
0 answers
2k views

The issue I am running into is that when we hover over the plot, the tooltip does not represent the series that eventually becomes flagged as selected. This occurs when there are several line series grouped closely together.

I am using the default tooltip modifier together with a custom selection modifier.

I was wondering whether there is a way to obtain the tooltip information in our OnModifierMouseDown or somehow reconcile the hit testing of the tooltip modifier and our custom selection modifier (logic below). Our hit test radius is 9 because this seemed to be closest to the default tooltip hittest radius.

(Note our CustomSeriesSelectionModifier overrides ChartModifierBase. It does not override the default seriesselectionmodifier class because we found that it was not giving us adequate control over the selection rules)

Example scenario: Three curves grouped closely together. Hovering over them shows the tooltip for curve 3. Clicking selects curve 1 (even while the tooltip for curve 3 is still visible)

Thanks in advance

public class CustomSeriesSelectionModifier : ChartModifierBase
{
    public CustomSeriesSelectionModifier()
    : base()
    {
        ReceiveHandledEvents = true;
    }

    public override void OnModifierMouseDown( ModifierMouseArgs e )
    {
        base.OnModifierMouseDown( e );

        var point = GetPointRelativeTo( e.MousePoint, ModifierSurface );

        Vector smallestDifference = new Vector( double.MaxValue, double.MaxValue );
        IRenderableSeries hitSeries = null;

        foreach ( var series in this.ParentSurface.RenderableSeries )
        {
            var hitTest = series.HitTest( point, 9.0 );
            if ( hitTest.IsHit )
            {
                Vector diff = Point.Subtract( point, hitTest.HitTestPoint );

                if ( smallestDifference.Length > diff.Length )
                {
                    smallestDifference =  diff ;
                    hitSeries = series;
                }
            }
        }

        if ( hitSeries != null )
        {
            // do custom selection stuff
        }
    }

}
  • John Chow asked 2 years ago
  • last active 2 years ago
0 votes
4k views

How would I go about doing this in swift?

1 vote
3k views

If you set limit on range of axis, the pinch gesture will not work correctly.
Pinch the chart and hold for a while (about less than 1 sec), the chart will resize to the limit value you set on the axis.

You can change code of OscilloscopeFragment.java#106 in Examples to below to reproduce this problem.

final IAxis xBottomAxis = sciChartBuilder.newNumericAxis()
                    .withAutoRangeMode(AutoRange.Never)
                    .withAxisTitle("Time (ms)")
                    .withVisibleRange(new DoubleRange(2.5, 4.5))
                    .withVisibleRangeLimit(0,20)   // this will help reproduce the problem
                    .build();
0 votes
6k views

Hi,
I have been using scicharts for sometimes now but i always have this problem. I set the visible ranges in X axis, let’s say VisibleRange = “20, 100” and the first time the chart renders all looks well (touches the Y axis and the right edge of the chart), but when I zoom and reset zoom or just double click on the graph (as if am reseting after zoom) I have this gap in between my graph (line graph may be) and the Y axis. Can some one please help me get through this? Thanks in advance.

0 votes
3k views

Hi Everybody,

I use a FastLineRenderableSeries with an XyDataSeries,

when I append data with a negative incrementation of X value,
nothing seems to be drawn

for example:

 Clear();
 for (int i = 0; i < 100; i++)
 {
      Append(100-i, i);
 }
 ZoomExtents();

but this example is working

 Clear();
 for (int i = 0; i < 100; i++)
 {
      Append(i, i);
 }
 ZoomExtents();

Is there a way to get this working? In my application data comes in real time, so I can’t sort them.

Thanks in advance for your help.

0 votes
7k views

Hi

I have an mvvm application using annotations. I just added some features to it, and discovered a wierd thing…

On my annotations, the IsEditable property is bound to a property in the view model. I think this used to work fine, but now those bindings don’t seem to work properly the first time they are rendered. The annotations are always editable. When I switch to another tab, they work fine in the next one. I switch back to the first and now it works fine there… I even put in a breakpoint in the property and it never got hit the first time the view got rendered.

Could this be a bug introduced with the last update? Since that adressed some issues with tab controls and mvvm in wpf, something might have happend. Or it could just be the fact that all my annotations in my first view used to be editable, so this just simply hadn’t occured before. I’m not quite sure…

Could you guys take a look?

Thanks 🙂

1 vote
4k views

In the designer I’m seeing this. It doesn’t seem to affect the application; however, I can’t see any of my XAML in the designer because of this problem. Also, I’m having a strange intermittent issue with multiple instances of the chart in my UI not being as smooth and sharp after adding a few charts.

DllNotFoundException: Unable to load DLL ‘sharpdx_direct3d11_1_effects_x86.dll’: The specified module could not be found. (Exception from HRESULT: 0x8007007E)

at SciChart.Drawing.DirectX.Context.D3D11.DirectXHelper.LTC.J(Object D, DXErrorEventArgs I)
at SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.RecreateSurface()
at SciChart.Drawing.Common.RenderSurfaceBase.RenderSurfaceSizeChanged(Object sender, SizeChangedEventArgs sizeChangedEventArgs)
at System.Windows.SizeChangedEventArgs.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.RaiseEvent(RoutedEventArgs e)
at System.Windows.FrameworkElement.OnRenderSizeChanged(SizeChangedInfo sizeInfo)
at System.Windows.ContextLayoutManager.fireSizeChangedEvents()
at System.Windows.ContextLayoutManager.UpdateLayout()
at System.Windows.UIElement.UpdateLayout()

Here’s the XAML for my chart

        <!-- Chart  -->
    <s:SciChartSurface Grid.Row="1" Grid.Column="1"                                   
                       Name="DoseChart"
                       s3d:DirectXHelper.TryApplyDirectXRenderer="True"
                       s3d:DirectXHelper.FallbackType="{x:Type s:HighQualityRenderSurface}"
                       RenderableSeries="{s:SeriesBinding Measurements}"
                       Annotations="{s:AnnotationsBinding Annotations}"
                       Style="{StaticResource ResourceKey=SurfaceStyle}"                                                      
                       GridLinesPanelStyle="{StaticResource ResourceKey=GridLinesPanelStyle}">


        <!-- Distance Axis-->
        <s:SciChartSurface.XAxis>
            <s:NumericAxis AxisTitle="Distance (cm)"
                           FontFamily="Arial" FontSize="12"
                               FlipCoordinates="False"
                               GrowBy="0.05, 0.05"
                               ScientificNotation="None" 
                               s:CursorModifier.AxisLabelContainerStyle="{StaticResource CursorModAxisLabelStyle}"
                               s:CursorModifier.AxisLabelTemplate="{StaticResource CursorModAxisLabelTemplate}"
                               Style="{DynamicResource ResourceKey=DistanceAxisStyle}" />
        </s:SciChartSurface.XAxis>

        <!-- Dose Axis -->
        <s:SciChartSurface.YAxis>
            <s:NumericAxis AxisTitle="Dose (%)"
                           FontFamily="Arial"
                               GrowBy="0.05, 0.05" 
                               Style="{DynamicResource ResourceKey=DoseAxisStyle}"
                               s:CursorModifier.AxisLabelContainerStyle="{StaticResource CursorModAxisLabelStyle}"
                               s:CursorModifier.AxisLabelTemplate="{StaticResource CursorModAxisLabelTemplate}" />
        </s:SciChartSurface.YAxis>

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

    </s:SciChartSurface>
0 votes
13k views

Hi,

i have a problem with chart redrawing after the appending of new data. If i understand it correctly, charts update automatically after calling Append. However, if i add single pairs or arrays of data, that does not happen.

To reproduce this, just alter the SciChart WPF example. In LineChartExampleView.xaml.cs, i replaced

var data = DataManager.Instance.GetFourierSeries(1.0, 0.1);

// Append data to series. SciChart automatically redraws
series.Append(data.XData, data.YData);

with

double[] x = new double[100];
double[] y = new double[100];

for (int i = 0; i < 100; i++)
{
    x[i] = i;
    y[i] = i;
}

series.Append(x, y);  

The result after starting the demo and clicking “Create a basic chart” -> “Line chart” can be seen in attachment 1. It requires a left doubleclick to make all the data visible (attachment 2). Why does the chart not rescale and redraw automatically?

Thank you,

Robin

0 votes
5k views

In the HeatMap chart, each cell can draw color according to the value…
But after the cell drawing, the HeatMap’s Gridline is covered by the cell color (see the jpg file before and after)

Can I always make the gridline front to the top of cell color? (I Want to see the major grid line after cell drawing…)

thk

  • ychch yang asked 6 years ago
  • last active 6 years ago
0 votes
0 answers
5k views

I’m using the YAxes property of the chart to data bind to a collection of NumericAxisViewModels. Is there a way to rotate the tick labels in this scenario. I can’t define a style in XAML and then assign it to the Axis because the axis is created in scichart somewhere. All I have is the axis view model. I have a LabelProvider but it doesn’t seem to support rotation unless I access the ParentAxis. Ultimately I would like to rotate some vertical axis and not other but I might be able to live with rotating all of them.

I have tried defining a style in xaml that applies to all numeric axis but it didn’t work:

<Style TargetType="{x:Type s:DefaultTickLabel}">
        <Setter Property="LayoutTransform">
            <Setter.Value>
                <RotateTransform Angle="-90"/>
            </Setter.Value>
        </Setter>
    </Style>

Adding a LabelProvider sort of works but seems a little hacky and doesn’t set the scale appropriately ( I have to zoom to extends to see the labels). Is this the way I am supposed to do it?

public override string FormatLabel(IComparable dataValue) {
        var style = new Style(typeof(DefaultTickLabel));
        style.Setters.Add(new Setter(DefaultTickLabel.LayoutTransformProperty, new  RotateTransform(-90.0)));
        ParentAxis.TickLabelStyle = style;
0 votes
0 answers
4k views

Hi,

I’m trying to draw graph in trial version for test purpose. But I cannot see graph in android 7.0(HD tablet). When I tried android 8.0(QHD phone), I can see graph with zoom in/out feature. I need to support android 7.0
I’m using ECG example.

I don’t know which is correct version. below is the setting in gradle.

implementation(group: ‘com.scichart.library’, name: ‘core’, version: ‘2.0.0.1654’, ext: ‘aar’)
implementation(group: ‘com.scichart.library’, name: ‘data’, version: ‘2.0.0.1654’, ext: ‘aar’)
implementation(group: ‘com.scichart.library’, name: ‘drawing’, version: ‘2.0.0.1654’, ext: ‘aar’)
implementation(group: ‘com.scichart.library’, name: ‘charting’, version: ‘2.0.0.1654’, ext: ‘aar’)
implementation(group: ‘com.scichart.library’, name: ‘extensions’, version: ‘2.0.0.1654’, ext: ‘aar’)

0 votes
3k views

Hi,

I wanted to setup a heatmap colorpalette where ColorMaximum is dynamic.So heat values starts from 0 to unknown.
I want to have a colormap where heatvalue ranges like 0-10 should be mapped to color A, 10-50 by color B, 50-100 by color C and 100 onwards to maximum value by colorD. Is it possible?

Required ColorPalette as below
0-10 – ColorA
10-50 – ColorB
50-100 – ColorC
100-Infinity- ColorD

  • deepak b asked 3 years ago
  • last active 3 years ago
0 votes
9k views

I’m having some difficulty getting 2.0 to run. (.net 4.0/64bit). I have created a simple windows forms app that attempts to
1) set the license key
2) instantiate a SciChartSurface

The SciChartSurface.SetLicenseKey method (seems) to work okay, but when I try to instantiate the surface I get the dreaded .dll file not found exception. I have checked twice and I am using the correct .dll for 4.0/64bit. (btw I have tried referencing the .dll directly and through the GAC)

ideas? Could you perhaps verify with the .csproj file provided?
exception follows ::

System.IO.FileLoadException occurred
HResult=-2146234304
Message=Could not load file or assembly ‘Abt.Controls.SciChart.Wpf, Version=2.1.4951.42832, Culture=neutral, PublicKeyToken=b55dd9efe817e823’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Source=mscorlib
FileName=Abt.Controls.SciChart.Wpf, Version=2.1.4951.42832, Culture=neutral, PublicKeyToken=b55dd9efe817e823
FusionLog==== Pre-bind state information ===
LOG: User = LhoTse\Dan
LOG: DisplayName = Abt.Controls.SciChart.Wpf, Version=2.1.4951.42832, Culture=neutral, PublicKeyToken=b55dd9efe817e823
(Fully-specified)
LOG: Appbase = file:///C:/Development/Wild_Development/Wild_2013_3/Wild2/SciChart_2.0_simple_test/bin/x64/Debug/
LOG: DEVPATH = C:\ProgramData\Red Gate.NET Reflector\DevPath
LOG: Initial PrivatePath = NULL

Calling assembly : PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Development\Wild_Development\Wild_2013_3\Wild2\SciChart_2.0_simple_test\bin\x64\Debug\SciChart_2.0_simple_test.vshost.exe.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Post-policy reference: Abt.Controls.SciChart.Wpf, Version=2.1.4951.42832, Culture=neutral, PublicKeyToken=b55dd9efe817e823
LOG: Attempting download of new URL file:///C:/Development/Wild_Development/Wild_2013_3/Wild2/SciChart_2.0_simple_test/bin/x64/Debug/Abt.Controls.SciChart.Wpf.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Revision Number
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

StackTrace:
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
InnerException:

0 votes
0 answers
4k views

Hi, I have a problem with Scrollbar at custom overview surface. I’ve made bigger grips to easy catch on smartphone / tablet but now it is really annoying that under viewport I don’t see the same thing that at main surface (part of chart is cover by grip). Viewport is bound to center of grip. Is it possible to bound viewport to internal grip borders?
Pawel

1 vote
9k views

Hi folks,

I’ve just upgraded a project to SciChart version 3.x. I got most everything working, but one issue remains…

In 1.x and 2.x, I was able to hide cursor labels by adding an empty AxisLabelTemplate like this:

<s:CursorModifier x:Name="MainCursor" ShowAxisLabels="True" ShowTooltip="False" LineOverlayStyle="{x:Null}">
     <s:CursorModifier.AxisLabelTemplate>
         <!-- This empty template hides Themes cursor labels -->
         <ControlTemplate TargetType="s:TemplatableControl" />
      </s:CursorModifier.AxisLabelTemplate>
 </s:CursorModifier>

In 3.x, this doesn’t quite seem to work. I have no y-axis cursor label, but I do have an x-axis cursor label. (My axes are treated differently; one is in XAML, and one is in code since I swap between linear and log axes occasionally.)

How can I get rid of the x-axis cursor?

Thanks,
–George

  • yefchak asked 8 years ago
  • last active 8 years ago
1 vote
6k views

I’m trying to create a CustomRenderableSeries in MVVM. I’ve got my custom renderable series working fine outside of MVVM, and it seems pretty simple to wrap it with a ViewModel using the API.

However, the series isn’t displaying (Draw not getting called, and ranges not changing, so it’s not just failing to draw anything).

It’s pretty simple (and I’m going to add caching for the pens and brushes later):

public class CustomXyScatterRenderableSeriesViewModel : BaseRenderableSeriesViewModel
{
    // Tell SciChart what type of RenderableSeries you want to instantiate
    public override Type RenderSeriesType
    {
        get { return typeof(CustomXyScatterRenderableSeries); }
    }
}


public sealed class CustomXyScatterRenderableSeries : CustomRenderableSeries
{
    protected override void Draw(IRenderContext2D renderContext, IRenderPassData renderPassData)
    {
        XyzPointSeries pointSeries = renderPassData.PointSeries as XyzPointSeries;

        // PointMarkers are created once and cached
        var pointMarker = this.GetPointMarker();

        //if (pointMarker == null)
        //    return;

        int setCount = pointSeries.Count;

        IBrush2D brush = renderContext.CreateBrush(Brushes.Red, 0.5);
        IPen2D pen = renderContext.CreatePen(Colors.Transparent, false, 0, 0);
        // Iterate over points collection and render point markers
        for (int i = 0; i < setCount; i++)
        {
            double xPoint = (double)pointSeries.XValues[i];//pointSeries[i].X;
            double yPoint = (double)pointSeries.YValues[i];//pointSeries[i].Y;
            double zPoint = (int)pointSeries.ZPoints[i];

            // Get coordinates for X,Y data values
            var x1 = (int)renderPassData.XCoordinateCalculator.GetCoordinate(xPoint);
            var y1 = (int)renderPassData.YCoordinateCalculator.GetCoordinate(yPoint);
            var z1 = (int)zPoint+2;

            //var pointMarkerRect = new Rect(0, 0, pointMarker.PixelWidth, pointMarker.PixelWidth);
            //double xOffset = pointMarkerRect.Width / 2;
            //double yOffset = pointMarkerRect.Height / 2;

            // Draw PointMarkers
            renderContext.DrawEllipse(pen, brush, new Point(x1, y1), z1 * 2, z1 * 2); //(new Rect(x1 - xOffset, y1 - yOffset, pointMarkerRect.Width, pointMarkerRect.Height), pointMarker, pointMarkerRect);
        }
        brush.Dispose();
        pen.Dispose();
    }
}

When directly, all is good:

<s:SciChartSurface x:Name="SciChartSurface"
                   DebugWhyDoesntSciChartRender="True"
                   GridLinesPanelStyle="{StaticResource GridLinesPanelStyle}"
                   DataContext="{Binding ElementName=userControl}"

                   ViewportManager="{Binding ViewportManager}"
                   ChartTitle="{Binding Title}">

    <s:SciChartSurface.RenderSurface>
        <s3D:Direct3D10RenderSurface />
    </s:SciChartSurface.RenderSurface>

    <s:SciChartSurface.RenderableSeries>
        <helpers:CustomXyScatterRenderableSeries DataSeries="{Binding Data}"  />
    </s:SciChartSurface.RenderableSeries>

    <s:SciChartSurface.XAxis>
        <s:NumericAxis AxisTitle="{Binding XAxisLabel}" LabelProvider="{StaticResource SINumericLabelProvider}"/>
    </s:SciChartSurface.XAxis>
    <s:SciChartSurface.YAxis>
        <s:NumericAxis AxisTitle="{Binding YAxisLabel}" LabelProvider="{StaticResource SINumericLabelProvider}"/>
    </s:SciChartSurface.YAxis>
    <s:SciChartSurface.ChartModifier>
        <s:ModifierGroup>
            <s:MouseWheelZoomModifier x:Name="mouseWheelZoomModifier" />
            <s:RubberBandXyZoomModifier ExecuteOn="MouseRightButton" IsAnimated="True" />
            <s:ZoomPanModifier />
            <s:ZoomExtentsModifier ExecuteOn="MouseDoubleClick" />
        </s:ModifierGroup>
    </s:SciChartSurface.ChartModifier>
</s:SciChartSurface>

But when using the View Model, it fails to display:

<s:SciChartSurface x:Name="SciChartSurface"
                   DebugWhyDoesntSciChartRender="True"
                   GridLinesPanelStyle="{StaticResource GridLinesPanelStyle}"
                   DataContext="{Binding ElementName=userControl}"

                   ViewportManager="{Binding ViewportManager}"
                   ChartTitle="{Binding Title}"
                   RenderableSeries="{s:SeriesBinding Series}">

    <s:SciChartSurface.RenderSurface>
        <s3D:Direct3D10RenderSurface />
    </s:SciChartSurface.RenderSurface>

    ....
</s:SciChartSurface>

I’m not sure what I’m doing wrong, as there doesn’t seem to be much more to it!

Edit: More info, in the code behind, I’m binding to this data for testing:

    public XyzDataSeries<float, float, int> Data { get; set; }
    public ObservableCollection<IRenderableSeriesViewModel> Series { get; set; }

    public LineChart()
    {
        this.DataContext = this;
        Data = new XyzDataSeries<float, float, int>();
        Data.Append(50, 50, 10);
        Data.Append(100, 100, 15);
        Series = new ObservableCollection<IRenderableSeriesViewModel>();
        Series.Add(new CustomXyScatterRenderableSeriesViewModel() { DataSeries = Data });

        InitializeComponent();
    }
  • Ken Hobbs asked 6 years ago
  • last active 6 years ago
0 votes
1k views

We’re using Xamarin.Forms. We were using iOS build 5019 and Android build 4441 and we had a custom DatelabelProvider set on our X axis in both platforms which worked fine.

However after updating to latest builds (5022 and 4459), the provider’s FormatLabel (FormatLabelFormatted on Android) isn’t being called and the default label formatting is applied.

1 vote
12k views

Hi

I would like to do some logic after zooming in but can not find to witch event I should subscribe or overwrite ?

2 votes
10k views

Hi,
How can I get my application to do the following:

  • RubberBandXyZoomModifier execute on left mouse
  • ZoomPanModifier execute on left mouse + ctrl

I tried extending the ZoomPanModifier as such:

public class ZoomPanModifierEx : ZoomPanModifier
{
   public override void OnModifierMouseDown(ModifierMouseArgs e)
   {
      IsEnabled = (e.MouseButtons == MouseButtons.Left) && (e.Modifier == MouseModifier.Ctrl);
      base.OnModifierMouseDown(e);
   }
}

This did not work though.

Thanks in advance.

Johnny

0 votes
2k views

On a small PC with only Intel HD Graphics 4600 the DirectX rendering is not supported by SciChart. Thats fine but it should use the fallback render surface.

<s:SciChartSurface 
  RenderPriority ="Low"
  s:VisualXcceleratorEngine.IsEnabled="True"
  s:VisualXcceleratorEngine.FallbackType="{x:Type s:HighQualityRenderSurface}"
  s:VisualXcceleratorEngine.DowngradeWithoutException="True"
  s:VisualXcceleratorEngine.EnableImpossibleMode="True"
  s:PerformanceHelper.EnableExtremeDrawingManager="True"
  s:PerformanceHelper.EnableExtremeResamplers="True"

I got this exception:

    System.Exception: Your GPU is blacklisted for use by the Visual Xccelerator Engine! There are several reasons why a GPU could belong to the blacklist. For example, low computation capabilities of the GPU could cause Timeout Detection and Recovery of Graphics Adapter Drivers by the OS, resulting in crashing the application.
   at SciChart.Charting.VisualXcceleratorEngine.ivc(DependencyObject t, DependencyPropertyChangedEventArgs u)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)

But it should use HighQualityRenderSurface without any exception.

  • Tobias asked 2 years ago
  • last active 2 years ago
1 vote
2k views

I was trying to test SciChart on simulator, but I have a problem: I added chart surface on my view, and after I launch an app, SciChart is showing me this text on the screen :
“Hardware rendering performance of SciChart in simulator is SLOW. Please use an actual device to feel the real-world performance”
How do I remove this text and test my charts on the simulator?

0 votes
3k views

I’m trying to make sure I can get the full extents of the image before converting to something is useful for inclusion in a report; however, when I run the following code the image is not showing the entire zoomed out chart. The chart is however zoomed out when this function is complete.

Dispatcher.Invoke(() => CrosslineGraph.DoseChart.ZoomExtents());           
        BitmapSource bitmap = CrosslineGraph.DoseChart.ExportToBitmapSource();
        byte[] bytes;

        using (MemoryStream stream = new MemoryStream())
        {
            BitmapEncoder encoder = new PngBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(bitmap));
            encoder.Save(stream);
            bytes = stream.ToArray();
        }
0 votes
4k views

Hi there,

I am new to the SciChart. Could you please tell me what is the name of “x-Axis” in SciStockChart?
Since from your example, you used SciChartSurface. The Checkbox syntax shows below. The ElementName is xAxis.

CheckBox Margin=”3″ Content=”Draw Major Gridlines” IsChecked=”{Binding ElementName=xAxis, Path=DrawMajorGridLines, Mode=TwoWay}”/>

… …

s:SciChartSurface.XAxis>
s:DateTimeAxis x:Name=”xAxis” VisibleRangeChanged=”OnXVisibleRangeChanged”>
/s:SciChartSurface.XAxis>

But I can not find or change the name property in SciStockChart. Could you please tell me what ElementName should I use? Or if there are other ways to achieve this. Thank you very much!

  • Dexin Wang asked 4 years ago
  • last active 4 years ago
0 votes
4k views

When setting yAxis to have auto range enabled or when manually calling chartSurface.zoomExtents() after adding new data to chart, the top point are cropped (not shown in the chart). I have attached an image that shows this phenomenon (note: bottom part of the chart is cropped out of the image).

Below is full code of an Activity that reproduces the problem. I also updated the attached image that shows the result of the following code. As you can see both red points with y value of 1.1f are cropped out of the chart.

class MainActivity : AppCompatActivity()
{
    private val chartBuilder by lazy { SciChartBuilder.instance() }
    private val chartSurface by lazy { createChartSurface() }

    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)

        SciChartBuilder.init(this)
        setContentView(R.layout.activity_main)

        val background = findViewById<ViewGroup>(R.id.background)
        background.addView(chartSurface)

        addPoints()
    }

    private fun createChartSurface(): SciChartSurface
    {
        val surface = SciChartSurface(this)

        val xAxis = chartBuilder.newNumericAxis()
            .withAxisTitle("X Axis title")
            .withVisibleRange(0.0, 1.0)
            .withAutoRangeMode(AutoRange.Always)
            .build()

        val yAxis = chartBuilder.newNumericAxis()
            .withAxisTitle("Y Axis title")
            .withVisibleRange(0.0, 1.0)
            .withAutoRangeMode(AutoRange.Always)
            .build()

        Collections.addAll(surface.xAxes, xAxis)
        Collections.addAll(surface.yAxes, yAxis)

        surface.renderableSeries.add(createSeries(Color.RED))
        surface.renderableSeries.add(createSeries(Color.BLUE))

        return surface
    }

    private fun createSeries(color: Int): FastLineRenderableSeries
    {
        val lineData = chartBuilder.newXyDataSeries(Long::class.javaObjectType, Float::class.javaObjectType)
            .withSeriesName("series")
            .build()

        return chartBuilder.newLineSeries()
            .withDataSeries(lineData)
            .withIsVisible(true)
            .withStrokeStyle(color, 2f, true)
            .build()
    }

    private fun addPoints()
    {
        val xValues = LongValues(longArrayOf(0, 1, 2, 3, 4, 5))

        @Suppress("UNCHECKED_CAST")
        var lineData = chartSurface.renderableSeries[0].dataSeries as XyDataSeries<Long, Float>
        lineData.append(xValues, FloatValues(floatArrayOf(0.9f, 1f, 1.1f, 0.9f, 1.1f, 1f)))

        @Suppress("UNCHECKED_CAST")
        lineData = chartSurface.renderableSeries[1].dataSeries as XyDataSeries<Long, Float>
        lineData.append(xValues, FloatValues(floatArrayOf(0f, 0f, 0f, 0f, 0f, 0f)))
    }
}
0 votes
1k views

We’re using ReactiveUI and bindings in code-behind. We’re now upgrading from SciChart v3 to v6 and we’re wondering how to use the SeriesBinding in code-behind like this:

public partial class BarChartView : ReactiveUserControl<sBarChartViewModel>
{
    public BarChartView()
    {
        InitializeComponent();

        this.WhenActivated(disposable =>
        {
            this.OneWayBind(ViewModel,
                            vm => vm.SeriesSource,
                            view => view.BarChart.SeriesSource)
                .DisposeWith(disposable);

            this.OneWayBind(ViewModel,
                            vm => vm.LabelProvider,
                            view => view.FaciesAxis.LabelProvider)
                .DisposeWith(disposable);

            this.OneWayBind(ViewModel,
                            vm => vm.TooltipDataContext,
                            view => view.TooltipModifier.TooltipLabelDataContextSelector)
                .DisposeWith(disposable);

            this.OneWayBind(ViewModel,
                            vm => vm.XAxisRange,
                            view => view.FaciesAxis.VisibleRange)
                .DisposeWith(disposable);
        });
    }
}

Now the IChartSeriesViewModel and SciChartSurface.SeriesSource is deprecated so we have to move to IRenderableSeriesViewModel instead and then bind to SciChartSurface.RenderableSeries. But how can we convert from IRenderableSeriesViewModel to IRenderableSeries here?

  • Tore Munch asked 1 year ago
  • last active 6 months ago
0 votes
5k views

I am aware that for performance reasons that SciChart expects data to be sorted in the X direction. But is it possible to have it sorted in a descending order rather than the default ascending order?

  • muh fugen asked 4 years ago
  • last active 4 years ago
0 votes
842 views

We are building an application that receives data at a rate of 264 samples per second. The values we are trying to plot are too large to use doubles so we are using floats instead. As soon as a second or two of data is appended to the chart’s dataseries the application freezes and I get the following message in the debug output window of Visual Studio.

SciChartSurface didn’t render, because an exception was thrown:
Message: Array dimensions exceeded supported range.

Stack Trace: at System.Collections.Generic.List1.set_Capacity(Int32 value)
at System.Collections.Generic.List
1.EnsureCapacity(Int32 min)
at System.Collections.Generic.List1.Add(T item)
at SciChart.Charting.Numerics.TickProviders.NumericTickProvider.CalculateTicks(IRange
1 tickRange, Double delta, Double majorDelta, IList1 results)
at SciChart.Charting.Numerics.TickProviders.NumericTickProvider.CalculateMajorTicks(IRange
1 tickRange, IAxisDelta1 tickDelta)
at SciChart.Charting.Numerics.TickProviders.TickProvider
1.SciChart.Charting.Numerics.TickProviders.ITickProvider.GetMajorTicks(IAxisParams axis)
at SciChart.Charting.Visuals.Axes.AxisCore.CalculateTicks()
at SciChart.Charting.Visuals.Axes.AxisBase.OnDraw(IRenderContext2D renderContext, IRenderPassData renderPassData)
at vme.scn(ISciChartSurface cbn, IRenderContext2D cbo)
at vme.RenderLoop(IRenderContext2D renderContext)
at SciChart.Charting.Visuals.SciChartSurface.DoDrawingLoop()

How can we get this data to render on the chart without crashing? Ideally we would like to use the FIFO feature of SciChart as well but at this point we would just settle for getting the chart to render.

0 votes
4k views

I’m playing with the DatPointSelectionModifier which seems mostly what i need but I have two problems as follows:

1/ I have started a selection operation by dragging over an area containing some points and I decide that I don’t want that area after all and want to cancel the operation (much like file explorer file dragging – hitting escape cancels the operation) – How do I do that?

2/ I have a set of selected points and drag to select another set which overlaps the first set. I would like the any points in the overlap to invert from selected to unselected and vice versa. How would I know which points are encompassed by the drag operation so i can work out the overlap?

Thanks for any suggestions
/Stuart

0 votes
0 answers
6k views

I noticed that there are problems when I try to add data series, create renderable series, or annotations while the view that hosts the scichartgroup and/or scichartsurface(s) is/are not yet initialized/rendered. Could this be a bug? After all it should not matter when the view is rendered; when it is rendered its elements bind to the matching properties of its viewmodel, no?

This poses problems for me because I am forced to take the viewmodel-first approach. So, when I create an instance of my viewmodel and then invoke methods in the viewmodel that add data series and render such I am experiencing errors (the rendered series is not displayed on the chart, though annotations strangely are).

I identified the problem to be 2-fold, one is that I have to create renderable series on the UI thread (solved that, no issue) but my other big problem is that the view is actually not instantiated/rendered unless the view is in focus/visible which is not the case during runtime when data series are added via viewmodel.

How can I solve this problem?

  • bbmat asked 7 years ago
  • last active 7 years ago
0 votes
8k views

Hi, every so often if I’ve stopped at a breakpoint then resume execution, the following exception gets thrown (usually within code that creates chart data series):-

System.TypeInitializationException occurred
HResult=-2146233036
Message=The type initializer for '' threw an exception.
Source=NuIns.NuQuant.UI
TypeName=
StackTrace:
at NuIns.NuQuant.UI.Charting.Providers.IntStdRecovery.IntStdRecoveryChartProvider.CreateChartData(BatchMethodAnalyte batchMethodAnalyte)
at NuIns.NuQuant.UI.Charting.Providers.ChartThumbnailProvider.CreateThumbsForSelectedIsotope() in c:\Dev\NuQuant\MAIN\Source\NuQuant\NuIns.NuQuant.UI\Charting\Providers\ChartThumbnailProvider.cs:line 103
InnerException: System.TypeInitializationException
HResult=-2146233036
Message=The type initializer for 'A.c7e585e832523cad8ae1bfdae702190ae' threw an exception.
Source=Abt.Controls.SciChart.Wpf.2.2
TypeName=A.c7e585e832523cad8ae1bfdae702190ae
StackTrace:
at A.c7e585e832523cad8ae1bfdae702190ae.cfeda204b88a362a8051e16fad0b60ea3()
at .cctor()
InnerException: System.IO.FileNotFoundException
HResult=-2147024894
Message=Could not load file or assembly 'Abt.Controls.SciChart.Wpf.2.2&amp;' or one of its dependencies. The system cannot find the file specified.
Source=mscorlib
FileName=Abt.Controls.SciChart.Wpf.2.2&amp;
FusionLog==== Pre-bind state information ===
LOG: User = xxxxxxxxxx
LOG: DisplayName = Abt.Controls.SciChart.Wpf.2.2&amp;
(Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: Abt.Controls.SciChart.Wpf.2.2&amp; | Domain ID: 1
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///C:/Dev/NuQuant/MAIN/BuildOutput/
LOG: Initial PrivatePath = NULL

Calling assembly : Abt.Controls.SciChart.Wpf.2.2, Version=2.2.5014.12317, Culture=neutral, PublicKeyToken=b55dd9efe817e823.

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Dev\NuQuant\MAIN\BuildOutput\NuIns.NuQuant.UI.vshost.exe.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Dev/NuQuant/MAIN/BuildOutput/Abt.Controls.SciChart.Wpf.2.2&amp;.DLL.
LOG: Attempting download of new URL file:///C:/Dev/NuQuant/MAIN/BuildOutput/Abt.Controls.SciChart.Wpf.2.2&amp;/Abt.Controls.SciChart.Wpf.2.2&amp;.DLL.
LOG: Attempting download of new URL file:///C:/Dev/NuQuant/MAIN/BuildOutput/Abt.Controls.SciChart.Wpf.2.2&amp;.EXE.
LOG: Attempting download of new URL file:///C:/Dev/NuQuant/MAIN/BuildOutput/Abt.Controls.SciChart.Wpf.2.2&amp;/Abt.Controls.SciChart.Wpf.2.2&amp;.EXE.

        StackTrace:
             at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark&amp;amp; stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
             at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark&amp;amp; stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
             at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark&amp;amp; stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
             at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark&amp;amp; stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection)
             at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark&amp;amp; stackMark, Boolean forIntrospection)
             at System.Reflection.Assembly.Load(String assemblyString)
             at A.c7e585e832523cad8ae1bfdae702190ae..cctor()
        InnerException: 

I’ve seen it with different versions of SciChart, not just 2.2. It happens once in a blue moon so is nothing more than a very minor inconvenience. Just wondered if you had come across this?

Showing 1 - 50 of 4k results