RSS Feed
News
Jul
25
Coming Soon to SciChart Q3/Q4 2018
Posted by Julia Skorobogata on 25 July 2018 01:08 PM

We’ve been quietly working away on a few projects for the past few months and wanted to give you an update to show you where SciChart will be going in the near future.

What’s Coming Soon to SciChart WPF?

SciChart WPF remains our flagship product and drives a lot of development, alongside tech support & maintenance (we have answered 692 support tickets for SciChart WPF and released 166 Nightly builds in the past year alone). We are still developing this product adding new features as our userbase requests and also features that are in strong demand.

Some of these are nearly ready for release and are listed below.

WPF New Chart Type: Free Surface Mesh 3D

A new Free Surface Mesh 3D feature will be presented in the upcoming release which will be SciChart WPF v5.2 (Q3 2018).

Free Surface Mesh 3D is a set of 3D charts that plot a surface mesh in 3D space. This chart type allows plotting closed objects in 3D that are not restricted by data laying down in the XZ plane. The charts can render different types of data including ellipsoid, cylinder, polar and even custom free surface mesh data in 3D. Please see the preview of the examples below:

scichart-surface-mesh-3D-custom-free-surface-mesh-data

Free Surface Mesh 3D with custom data

scichart-surface-mesh-3D-cylinder-data

Free Surface Mesh 3D with cylinder data

scichart-surface-mesh-3D-polar-data

Free Surface Mesh 3D with polar data

scichart-surface-mesh-3D-ellipsoid-data

Free Surface Mesh 3D with ellipsoid data

WPF New Feature: WPF Polar chart 3D

One of the chart types listed above is a 3D Polar Chart type, which allows for a flat disk with optional hole in the center defined by an equation and 2D array of data, contours, and paletted similar to a heatmap or surface-mesh chart. This chart type can be used in 3D mode or when an orthogonal overhead camera is presented, as a 2D Chart.

All new 3D Chart types will be made available to all customers of SciChart WPF SDK Professional, SDK Enterprise and 3D Professional who are in support subscription, free of charge. 

WPF New Feature: Drawing tools and Technical Indicators for trading applications

SciChart is widely used in trading and financial applications by our customers. Since a number of customers approached us to ask for these tools to be built, we have decided to make a step forward with a set of drawing tools for different patterns in trading.

The next release is expecting to bring a number of new annotation types to be used in trading systems, including:

  • Elliott Wave pattern
  • XABCD (Gartley / Bat / Harmonic polygon shapes) drawing
  • Head and Shoulders Pattern
  • Andrew’s Pitch Fork
  • Fibonacci Retracement
  • Fibonacci Extension
  • Also, we will be adding free brush style drawing to mark up the chart.

All of the following can be created programmatically, on user click, edited & dragged about, styled and persisted.

Please see some examples below:

scichart-elliott-wave-pattern-trading-tool

Elliott Wave Pattern, Trading Tools

scichart-xabcd-pattern-trading-tool

XABCD Pattern, Trading Tools

scichart-head-and-shoulders-pattern-trading-tool

Head and Shoulders Pattern, Trading tools

scichart-pitch-fork-pattern-trading-tools

Pitch Fork Pattern, Trading Tools

scichart-fibonacci-retracement-trading-tool

Fibonacci Retracement Trading Tool

scichart-fibonacci-retracement-extension-trading-tool

Fibonacci Retracement Extension Trading Tool

scichart-free-brush-drawing-trading-tools

Free Brush Drawing, Trading Tools

All new drawing tools will be in the SciChart.DrawingTools.dll package and will be made available to all customers of SciChart WPF SDK Professional, SDK Enterprise and 2D Enterprise who are in support subscription, free of charge. These drawing tools will not be available to SciChart WPF 2D Professional customers. 

What’s next in SciChart iOS / Android / Xamarin?

SciChart iOS & Android has been moving along with some progress to support latest SDKs but behind the curtain we are working on our big vision of having 2D & 3D Charts available on all native platforms, including Windows, Mac OSX, iOS, Android and with Xamarin & Xamarin Forms support.

Our next big piece of work is to bring 3D Charts to iOS & Android devices, which we have been working on quietly for the past year 
						<br />
						<a class=Read more »




Jul
11
SciChart WPF v5.1.1 Build 11473 Released!
Posted by Julia Skorobogata on 11 July 2018 04:40 PM

We are pleased to announce the release of SciChart v5.1.1 Build 11473 . This is a minor update which contains a huge number of bug fixes. It is strongly advised for users of SciChart v5.x to upgrade to this version, which is a drop-in replacement. 

What’s New in SciChart WPF v5.1.1?

There are bazillions of bug fixes and improvements made in touch screen feature, resampling, heat maps, export, and many more in SciChart v5.1.1. Please read on to see what is new in version 5.1.1.

Breaking changes

Updated all C++ projects to v141 tools, latest Windows SDK. Required after build server upgrade. This is a breaking change for customers who compile from source-code. All other users unaffected.

Bug Fixes
  • Fixed: DirectX renderer bug, unfilled columns when using a logarithmic Y axis
  • Fixed: the issue in Multipane when it would crash at attempt to set negative height to a pane
  • Fixed: GetColumnWidth method in BaseColumnRenderableSeries when the PointSeries can be null
  • Fixed an issue when Xyz dataSeries go [0] values after calling [ToDiscontinuousSeries()] method
  • Fixed: GetColumnWidth method in BaseColumnRenderableSeries when it returns wrong column width for hittest when columns go not one by oneAllow Scichart2D to work on D3D Level 10.0 hardware
  • SC-4493 3D Styling Fixed: axis titles look differently than axis labels by default
  • Fixed: 3d shadow on bottom problem, adding ability to control lighting:
    • in the grid shaders, the cell color override should be done before lighting
    • add a new parameter to control lighting factor is used, default it to 0.8 as it was hardcoded in shaders
    • fix the bug in the bottom shadows test, marking the nulls with a value, and overriding the cell color to e transparent on them
    • in the palette provider example, add a slider to control lighting about, defaulting it to zero so it remains looking the same
  • Fixed: XyzDataSeries3D PointMetadata3D when it does not working for scaling or Color
  • Fixed: bug where setting ImpulseRenderableSeries3D.StrokeThickness=0 causes a NullReferenceException
  • Added: tests for DataSeries3D DataSeriesChanged event
  • Added: Flags attribute to DataSeriesAction enum
  • Fixed: updating metadata in XyzDataSeries3D
  • Fixed: OnDataSeriesChanged in BaseGridDataSeries3D
  • Fixed: 3D chart with MVVM
  • SC-4475 Fixed: YAxisDragModifier doesn’t change ZoomState on surface
  • Fixed: Lightning settings in 3D Uniform Orthogonal Heatmap Chart
  • SC-4468 Fixed: DiscontinuousDateTimeAxis Rollover Modifier Not Displaying correct Xaxis Data – fixed CoordinateCalculator
  • Fixed: adding labels to 3D chart
  • Fixed: 3D Charts Not Rendering
  • SC-4461 Fixed: XyzDataSeries3D always create a list of metadata filled with Nulls
    • add Unit tests for operation with Metadata in XyzDataSeries3D
    • add operation Insert and Remove for Metadata
  • SC-4463 Fixed: PointMetadata3D cannot change VertexColor via the property
  • SC-4464 Fixed: RenderableSeries3D DataSeriesChangedEventArgs.DataSeriesAction
  • SC-4447 Fixed: Remove unnecessary firing of SelectionChanged event in PointMetadata3D (Selection event fired 100s of times when deselecting many points in a 3D Chart).
  • Fixed: not changed _scrollBarMaXRange when SciChartScrollbar calls UpdateRange() with binding to DataRange
  • Fixed: custom modifiers not working with touch
  • SC-4552 Fixed: the extreme context must set the current buffer to last used, this will ensure the drawing order when a different buffer is used
  • SC-4552 Fixed: do not call CheckSubbmitBuffer here because it changes the expected drawing order
  • Fixed the issue when VerticalSliceModifier would crash if any other modifier set the RolloverMarkers property
  • SC-4466 Fixed: Investigate Scrollbar behavior reported by a customer
  • SC-4548 Fixed: when CategoryDateTime and CategoryNumericAxis do not react to the ZoomExtentsModifier
  • Updated PointMetadata documentation
  • Added: DragStarted and DragCompleted unsubscribes for annotation adorner markers
  • SC-4516 Fixed: TooltipModifier and StackedSeries issue
  • SC-4535 Fixed: the issue when CategoryCoordinateCalculator would not find some date values in the BaseXValues collection due to rounding errors;
  • SC-4501 Fixed: the issue when CategoryNumericAxis would have default range of (0,10)/ Changed it to (0,1) as in CategoryDateTimeAxis
  • SC-4509 Fixed: AxisDragModifier when it doesn’t set ZoomingState on Scale mode
  • SC-4474 Fixed: ZoomHistory doesn’t record the first change
  • SC-4458 Fixed: incorrect resampling results caused by how DateTime is implemented in .NET ( it’s a struct with long value but it uses 2 last bits for internal flags and the rest is used for storing Ticks );
  • SC-4497 Fixed: AxisBase.DataRange gets calculated incorrectly for StackedSeries
  • Added: DiscontinuousAxis and DoubleScaleDiscontinuousAxis obey CursorTextFormatting
  • Fixed: the issue when Cursors XAxis label on DoubleScaleDiscontinuousAxis would be formatted differently than XAxis labels
  • Improved: cursor label formatting for DoubleScaleDiscontinuousAxis
  • Fixed: The export with CustomPointMarker in v5 not working
  • Added: the Precision property; fixed a couple of issues in ColorPalette
  • Removed: unused resources from the Realtime Heatmap example
  • SC-4479 Fixed: the issue when the ExtremeScatterRenderableSeries’ markers are clipped incorrectly;
  • SC-4458 Fixed: incorrect resampling of DateTime values which was caused by internal structure of DateTime in .Net
    • added separate DateTime stuck on C++ side which applies mask to get correct Ticks value on C++ side; made some code refactoring;
    • updated code for tests to cover the new case when using dates with local time;
  • SC-4462 Fixed: Added a missing property for AxisCoreViewModel (NumericAxisViewModel missing IsStaticAxis flag)
  • Added GetSprite method to BitmapSpriteBase
  • Added: some minor template changes to DoubleScaleDiscontinuousDateTimeAxis and one more panel for common Xaxis in SciChartMultiPane template
  • Updated: minimum requirement to .NET4.5.0 for installer
  • SC-4454 Fixed: Added the ModifierSurface option to AnnotationCanvas
  • SC-4451 Fixed: “Ensure Pie/Donut chart doesn’t create Storyboards / run animation when labels aren’t shown”
    • do Animation for segment’s label if it is needed only for Donut chart
    • do Animation for segment’s label if it is needed only
  • SC-4438 Fixed: slowing chart rotation with a few series due to LegendModifier
  • Added creation of ColorMap by default
  • SC-4455 Axes for MVVM and export gets not exported
  • Fixed: Software crashing due to an exception generated in SciChart.Drawing.DirectX
  • Fixed: Contours 2D example to fit the DirectX Contouring mechanism
  • Added GetSprite method to BitmapSpriteBase
  • SC-4421 Fixed: DiscontinuousAxis range issue for GetClosestDateToSmaller if baseDate is in the end of the day.
  • SC-4449 Fixed: Contours 2D example – add an option to hide heatmap
  • SC-4436 Fixed: issue Stacked Column chart v5.1.0 missing one column
  • SC-4448 Fixed: DateTimeAxisViewModel does not fire VisibleRangeChanged event
  • Fixed the issue when DiscontinuousDateTimeAxis would break bindings to the calendar (#1309)
  • SC-3962 Fixed: Export to XPS fails from Dev Mode toolbar in v4.2.2
  • Fixed: the property name in binding for Axis MVVM
  • Fixed: RolloverModifier behavior on column series when it isn’t within data bounds
  • SC-4446 Fixed: Issue when VerticalLineAnnotationMVVM + styleKey causes exception
  • SC-4443 Fixed: ScatterSeries (PointMarker) regression – points appear not filled
  • Fixed: the issue of crashing scichart when using float type for data (throwing ArgumentException)
  • Fixed: the type of hitTestInfo.Y1Value.
  • Fixed: the issue of crashing scichart when using float type for data
  • SC-4433 Fixed: When UseInterpolation=True and tooltipmodifier, the PointMetadata index is always previous, not nearest- added checking if seriesInfo has appropriate Metadata
  • SC-4442 Fixed: Zoomhistory(TimeSpan animation duration) causes exception
  • SC-4439 Fixed: When SelectedPolintMarker set in MVVM, all data-points disappear
  • Fixed: NullReferenceException for GrowBy in some series viewmodel types
  • Fixed: bug in CategoryDateTimeAxisViewModel with wrong ViewType
  • SC-4440 Fixed: When Annotations MVVM labels do not display
  • Added: new Properties for AxisCoreViewModel and some default values
  • Fixed: an Exception while adding Axis via MVVM
  • Fixed: error in CustomTooltipsWithModifiers example where AxisLabelStyle is applied to CursorModifier not Axis
  • Added AxisPanelStyle to AxisBase.
  • Added DefaultStyleKey to AxisPanel
  • SC-4432 Fixed: StrokeDashArray does not work on Axis gridlines when DirectX11 renderer used
  • Fixed: the problem with adding and removing StackedColumnRenderable Series using MVVM

Where to Get SciChart WPF v5.1.1?

SciChart WPF v5.1.1.11473 is available from:

Please ensure you uninstall the previous version(s) of SciChart before installing v5.1.1 as this can prevent some issues in the upgrade process!

GET SCICHART WPF v5.1.1

 

Best regards,
SciChart team

The post SciChart WPF v5.1.1 Build 11473 Released! appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Jun
13
Xamarin Forms 3.0 Released, WPF support in preview
Posted by Andrew on 13 June 2018 05:42 PM

We stumbled upon the news recently that Xamarin.Forms 3.0 has preview support for WPF!

This is really interesting for us at SciChart, as we make iOS Charts, Android Charts with Xamarin Support, as well as WPF charts, but we do not yet have a UWP chart solution. We feel that the API for UWP is incomplete and too immature to make good charting components or applications, so have avoided too much investment into this platform until it showed more promise.

Well maybe we won’t have to? If WPF becomes a first class citizen of the Xamarin ecosystem, then this should really be the first choice for cross-platform development of Xamarin applications which require a Windows app footprint.

Find out more about Xamarin’s plans here.

We will be prototyping to see what we can do with these frameworks soon.

 

The post Xamarin Forms 3.0 Released, WPF support in preview appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Feb
23
SciChart WPF v5.1.0 Build 11299 Released!
Posted by Andrew on 23 February 2018 12:00 PM

We are pleased to announce the release of SciChart v5.1.0 Build 11299. This is a minor update which contains a number of bug fixes and feature improvements. It is strongly advised for users of SciChart v5.x to upgrade to this version, which is a drop-in replacement. 

What’s New in SciChart WPF v5.1.0?

There are a number of improvements and bug fixes made in SciChart v5.1.0. It is recommended for all users of SciChart v5.x to update to the latest version, which should be a drop in replacement.

New Features
  • SC-3409 Improves Scatter series performance with PaletteProvider by up to 10x! Implemented a new series type ExtremeScatterRenderableSeries which enables fast PaletteProvider enabled scatter charts
    for DirectX charts only
  • SC-4351 Improves FIFO Resampling performance. Improves performance of FIFO series by up to 5x!
  • SC-4424 Improves line series performance where many series (e.g. 1000 series x 1000 points) by up to 5x!
  • SC-4403 Added cancellation Escape key option to Rubberbandzoom, xaxisdrag and yaxisdrag modifiers
  • SC-4381 Support Opacity and semi-transparency on ObjSceneEntity3D
  • SC-4377 Updated SeriesTooltips3D example to demonstrate how to access PointMetadata from the TooltipModifier3D
  • SC-4404 Added RatioFilter, RatioXyFilter, RatioOHLCFilter for displaying the ratio between two DataSeries
  • SC-4405 Added properties Tag, Opacity onto BaseRenderableSeriesViewModel
  • SC-4367 Make SciChart.ExternalDependencies a Nuget package for ease of deployment / testing of examples
  • SC-4406 Added property PinchZoomModifier3D.ZoomScaleSensitivity
  • SC-4341 Add a property FastuniformContourRenderableSeries.DrawingMode to allow Contours to switch to the software algorithm implementation for higher accuracy contours
  • SC-4408 Improved Cursor Snapping behaviour – now it snaps to the closest series by default (was to the first one)
  • Updated TradeMarkers demo to use the latest AnnotationsBinding MVVM API.
  • Created new Filters API Example updated to allow updating of data.

 

Bug Fixes
  • SC-4091: added handling of special case when there is one point to draw in a line series. Now draws a dot, or a dashed line where Digital Line is enabled.
  • SC-4319 Fixed multiple examples in SciChart3D when DirectX9 only available
  • SC-4378 AggregateByRenko performance improved when updating or appending new data-points only (does not recalculate entire Renko series)
  • SC-4394 System.InvalidOperationException : There was no XML start tag open when exporting to file and binding VerticalSliceModifier.VerticalLines to empty VerticalLineAnnotationCollection
  • SC-4393 Fixed RolloverModifier issue when only one tooltip displays for band series instead of two
  • SC-4346 Switching from DX11 -> DX9 in WPF 3D Examples causes crash
  • SC3D-445 Switch to right handed coordinates in 3D Chart causes labels to appear in wrong place
  • SC-4395 MVVM SeriesBinding with LineSeries and setting SelectedPointMarker and PointMetadata results in pointmarkers shown for non-selected points
  • SC-4400 DataPointSelectionModifier when CTRL pressed and AllowsMultiSelection=false it is still possible to multi select
  • SC-4399 SciChart3DSurface.IsAxisCubeVisible change causes crash at runtime
  • SC-4389 CategoryNumericAxis – investigate why it shows spaces to the right and to the left
  • SC-4397 Crash on export when TooltipModifier.TooltipLabelDataContextSelector is set
  • SC-4386 FastBubbleRS – AutoZRange considers points that are not in viewport
  • SC-4396 Flicker introduced in DirectX renderer since revision 5.0.1.11137
  • SC-4385 3D Column ovelaps each other
  • SC-3409 fixed incorrect drawing of colored sprites because of using startIndex values from input array instead of index from vertex buffer;
  • SC-4375 Chess board (Add Objects to a 3D Chart) has no texture
  • SC-4379 Scatter 3D Series shows colours as ABGR when should be ARGB
  • SC-4380 HeatmapColorPalette has no datacontext, cannot bind to Minimum or Maximum
  • SC-4330 Fixes DirectX Renderer not working over Remote Desktop since v5.0
  • SC-4352 Filters API Polynomial Fit does not work with DateTime,Double series
  • SC-4352 Filters API LinearTrendline, Polynomial and Spline do not work with DateTime,Double series
  • SC-4352 Filters API Spline fixed precision when input datatype TX=int
  • SC-4352 Several fixes and improvements to Filters API (Crashes on changing or updating data)
  • SC-4359 UniformHeatmapDataSeries<double,double,int> doesn’t update after changing data
  • SC-4355 UniformHeatmap / NonUniformHeatmap in MVVM doesn’t work
  • SC-4382 AggregateByRenko crashes if you append or update after original filter created
  • SC-4373 Uniform heatmap type with AutoRange=Always crashes
  • SC-4370 Fixed and issue with Horizontal/VerticalLineAnnotation when labels cannot be added via ViewModel
  • SC-4354 Bubble chart flickers and draws wrong bubbles on zoom, pan
  • SC-4361 DataPointSelectionModifier.UpdateState doesn’t update a SciChartSurface
  • SC-3986 Annotation label shows incorrect text
  • SC-4353 AnnotationCreationModifierForMVVM overrides properties of created annotations
  • SC-4407 SeriesBinding MVVM API: Removed the exception message The argument value must implement IEnumerable<IRenderableSeriesViewModel> if not expected type. Resolves microsoft designer crashes which generate mocks of objects
  • SC-4259 Order of Axes is not preserved when changed in real-time
  • SC-4301 Scrollbar range and axis growby mismatch
  • SC-4308 SciChartTrader example – chart disappears when switch to a DiscontinuousAxis in the toolbar
  • SC-4334 fix ScrollBar vibrating on some 4k screens
  • SC3D-432 LogarithmicAxis3DView -> axis3D titles overlap axis3D labels
  • SC-4340 TickProvider is never called if created in AxisViewModel
  • SC-4339 Fixes Heatmap Medata example incorrect tooltip,
  • SC-4322 RolloverModifier doesn’t work well with FastVolumeCandlestickRS
  • Fixed exception during resampling of Xyy data with None mode caused by recent changes in CopyValues methods;
  • Fixes NullReferenceException when XAxis is null and user clicks on YAxisDragModifier
  • Fixed crash when there are no ticks on axis scale
  • Fixed the issue when the DoubleScaleDiscontinuousDateTimeAxis would not handle properly ranges where Min or Max falls into a Calendar gap
  • Fixed the issue when tooltips would show accumulated value by default for StackedMountainSeries; added AccumulatedValue to OneHundredPercentStackedSeriesInfo
  • Fixed a crash with DiscontinuousAxisFilter that occurs after few calling of Clear() method.
  • Added default binding to AutoFitMarginalLabels for DoubleScaleDiscontinuousAxis
  • Updated RequiresReduction calculations which were changed after adding ResamplePrecision ( reduced constant value to 2 – we append 2 points at max when MinMax resampling is used )
  • Fixed rollover for mountains and columns series when interpolation is false
  • Fixed marginal labels clipping for DoubleScaleDiscontinuousDateTimeAxis
  • Fixed SourceCollectionBase issue when the SciChartSurface unload and the new series viewmodel added or removed some -> it will be ignored on chart reload
  • Fixed the issue in StackedSeries when zooming to extents would include the prev and next data point into computed Y range
  • Fix Surface Mesh Skirt does not obey opacity
  • Small fix to ObjectModel3D to prevent runtime crash when two or more ObjectModel3D are instantiated
  • Fixed AnnotationCreationModifierForMVVM issue when adding horizontal or vertical line annotations -> it is wait second click for it but should be just one
  • Making ArrayOperations public
  • Fixed an issue when discontinuous renderable series would report IsWithinBounds == “False” when hit-testing between series’ bars
  • Fix issue with ChartModifiers not firing ModifierKeyDown event for 2D charts
  • Removed SharpDX Direct3D10 from build script
  • Fixes Scrollbar nullreferenceexception if DataRange set before bound to axis
  • Added sharpdx_direct3d11_1_effects_x64 / x86.dll to the SciChart.DirectX NuGet package, and .targets file to include in output directory on build
  • DirectXHelper: rethrowing DllNotFoundException to ensure the user is aware of missing sharpdx_direct3d11_1_effects_x64.dll or sharpdx_direct3d11_1_effects_x86.dll
  • Fixes NullReferenceException in VerticalSliceModifier when using VerticalSliceModifier.VerticalLines and new SciChart AnnotationsBinding MVVM API
  • Apply patch supplied by customer. FastBubbleRenderableSeries.MaxBubbleSizeInPixels now a dependency property, added property AreaSizingInsteadOfRadius
  • Merging over DataPointWidth calculation for log axis column charts from v4 -> v5
  • Added missing Binding from AxisCoreViewModel.TickProvider to Axis derived types.
  • Added default TickProviders in AxisCoreViewModel derived types.
  • Fixed wrong default template for CustomUniformHeatmapRenderableSeries, that was incorrectly choose not x,y,z seriesInfo but y – seriesInfo.
  • Fixed a CursorModifier synchronization issue when a Cursor would snap to data points in one chart but not in synchronized charts
  • SeriesSource marked as obsolete. use latest SeriesBinding MVVM API instead.
  • Fix for proper working of Custom annotation, as if you put there Combobox it doesn’t work due to loosing focus in an appropriate moment
  • Obsoleting Heatmap2DArrayDataSeries, FastHeatMapRenderableSeries. Please use FastUniformHeatmapRenderableSeries and FastNonUniformHeatmapRenderableSeries instead

Where to Get It?

SciChart WPF v5.1.0.11299 is available from the usual channels.

  • By downloading from our scichart.com/downloads page
  • By Install-Package or Update-Package from NuGet
  • By cloning or downloading the source code on Github (source code customers only)

Please ensure you uninstall the previous version(s) of SciChart before installing v5.1.0 as this can prevent some issues in the upgrade process!

GET SCICHART WPF v5.1.0

 

The post SciChart WPF v5.1.0 Build 11299 Released! appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Feb
21
Performance Improvements in SciChart WPF v5.1 
Posted by Andrew on 21 February 2018 02:38 PM

SciChart WPF v5.1 will be released in the next few days. Here’s a sneak peak what we have added along with many features & bug fixe! 

Back in 2012 when SciChart WPF first came into existence, our main goal was to deliver High Performance, Realtime Charts to desktop applications on the Windows Presentation Foundation platform. Over the years our performance goalposts have moved. Originally we wanted to draw 100,000 points in realtime, then a million, then ten million! SciChart WPF v4 was an extremely fast & performant version of SciChart which was able to draw 10 million points (or more) for line series, a million or so for scatter series, and could comfortably draw hundreds or even thousands of series.

However, our users want more! Some of our power-users are using SciChart to draw huge datasets, so as a result, we’ve undertaken work to improve the speed of our WPF Charts in certain key areas, including:

Performance of Line Series when many series / few points

SciChart WPF v4 had a bottleneck where there were many series, each with few points. In this case the lossless resampling algorithm built into SciChart was unable to reduce the data drawn on screen. As a result the bottleneck because raw drawing of points.

In SciChart v5.1 we have added a new experimental drawing mode, which applies to line series only. This mode improves the performance of line series drawing up to 4x faster than previous version(s) of SciChart.

 

To enable faster drawing of line series, use the following code:

<s:SciChartSurface s3D:DirectXHelper.TryApplyDirectXRenderer="True"
                   s:PerformanceHelper.EnableExtremeDrawingManager="True">
   ... 
</s:SciChartSurface>
PerformanceHelper.SetEnableExtremeDrawingManager(sciChartSurface, true);
DirectXHelper.SetTryApplyDirectXRenderer(sciChartSurface, true);

 

Performance of FIFO / Scrolling series

SciChart WPF v4 had a bottleneck where FIFO (first in first out) DataSeries were used. In this mode, the dataseries had to be unwrapped from a circular buffer before being drawn. This copy step took some time and for larger data-sets (>10Million points) it caused a severe performance bottleneck.

In SciChart v5.1 we have added a new experimental set of resampling algorithms, which performs resampling in-place (does not unwrap). The result is the performance of FIFO Series is up to 4x faster than previous version(s) of SciChart.

To enable faster FIFO resampling, use the following code:

<s:SciChartSurface s3D:DirectXHelper.TryApplyDirectXRenderer="True"
                   s:PerformanceHelper.EnableExtremeResamplers="True">
   ... 
</s:SciChartSurface>
PerformanceHelper.SetEnableExtremeResamplers(sciChartSurface, true);
DirectXHelper.SetTryApplyDirectXRenderer(sciChartSurface, true);

 

Performance of Scatter Series with PaletteProvider (per-point colouring)

SciChart WPF v5 had a bottleneck where the Scatter Series was used with the PaletteProvider (changing point-color frequently as data updates). This was reported by several users who wanted to visualize a fourth dimension of data.

In SciChart v5.1 we have added a new series type: ExtremeScatterRenderableSeries. This series type adds an optimization which is available for DirectX only. When the optimization is enabled, points are drawn as batches and there is no performance hit when switching color dynamically in the scatter series. The new implementation is over 10x faster than the old scatter series when palette provider is enabled. (For non paletted series, the performance is the same).

 

To enable faster performance Scatter Series with PaletteProvider, use the following code:

<s:SciChartSurface s3D:DirectXHelper.TryApplyDirectXRenderer="True">
    <s:SciChartSurface.RenderableSeries>
        <s:ExtremeScatterRenderableSeries x:Name="scatterSeries">
            <s:ExtremeScatterRenderableSeries.PointMarker>
                <s:EllipsePointMarker Width="5" Height="5"/> 
            </s:ExtremeScatterRenderableSeries.PointMarker>
        </s:ExtremeScatterRenderableSeries>
    </s:SciChartSurface.RenderableSeries>
   ... 
</s:SciChartSurface>
DirectXHelper.SetTryApplyDirectXRenderer(sciChartSurface, true);
scatterSeries.PaletteProvider = new TestPaletteProvider(new Color[] { Colors.Red, Colors.Green, Colors.Blue ... } );E

// where ExtremePaletteProvider defined as 
public class TestPaletteProvider : IExtremePointMarkerPaletteProvider 
{
    private readonly List<Color> _dataPointColors;
    private readonly Values<Color> _colors = new Values<Color>();

    public TestPaletteProvider(List<Color> dataPointColors)
    {
        _dataPointColors = dataPointColors;
    }

    public Values<Color> Colors { get { return _colors; } }

    public void OnBeginSeriesDraw(IRenderableSeries rSeries)
    {
        var indexes = rSeries.CurrentRenderPassData.PointSeries.Indexes;
        var count = indexes.Count;
        _colors.Count = count;

        // copy required colors from list using data point indices
        for (int i = 0; i < count; i++)
        {
            var dataPointIndex = indexes[i];
            _colors[i] = _dataPointColors[dataPointIndex];
        }
    }
}

 

Performance and accuracy of resampling large datasets

Additional functionality has been added in SciChart v5.1. With a re-write of our resampling algorithms taking advantage of templating in C++ we now have the fastest, most accurate resampling algorithms ever, taking care of many edge cases that were reported such as handling datasets which included NaN (null points) and uneven datasets.

These improvements are enabled by setting the following code in your application:

<s:SciChartSurface s:PerformanceHelper.EnableExtremeResamplers="True">
   ... 
</s:SciChartSurface>
PerformanceHelper.SetEnableExtremeResamplers(sciChartSurface, true);

 

How Fast is SciChart’s WPF Chart?

You can see our updated performance benchmark over here at How Fast is SciChart’s WPF Chart! Over the years we have worked hard to maintain and improve performance, so that SciChart can be used in Big-Data, scientific and financial applications around the world.

Best regards,
Andrew

 

The post Performance Improvements in SciChart WPF v5.1  appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Jan
2
SciChart WPF v5 Documentation & MVVM Tutorials now live
Posted by Andrew on 02 January 2018 07:50 PM

Never one to rest on our laurels, we’ve been busy at work the past few weeks writing the SciChart WPF v5 Documentation. This has been released today!

You can view the updated SciChart WPF v5 Documentation at https://www.scichart.com/wpf-chart-documentation

What’s New in WPF v5 Documentation?

MVVM Tutorials!

New Filters API Docs

3D Charts Documentation

We have a new set of Tutorials on using SciChart with the MVVM API, including binding to series viewmodels, axis and annotations, updating charts in real-time and linking multiple charts and more.

We have a set of documentation on using the Filters API – a brand new API in SciChart WPF v5
Documentation on the DiscontinuousDateTimeAxis, a new axis type in SciChart WPF v5, as well as how to create Volume, Range and Renko bars with our new APIs.
Documentation on the Uniform and Non-uniform Heatmap RenderableSeries, new series types in SciChart WPF v5, as well as the Radar Chart type.

Documentation on the MVVM Axis API and MVVM Annotations API, both new to SciChart WPF v5.

Some notes about increasing the precision of resampling using the Extreme Resamplers API.
Also, something we’re a bit embarrassed about since it was first released in 2016 … we have now published full documentation for SciChart WPF 3D Charts, where you can find out how to use our 3D Chart types.

Enjoy!

 

Best regards,
Andrew

 

The post SciChart WPF v5 Documentation & MVVM Tutorials now live appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »




CONTACT US

Not sure where to start? Contact us, we are happy to help!


CONTACT US

SciChart Ltd, 16 Beaufort Court, Admirals Way, Docklands, London, E14 9XL. Email: Legal Company Number: 07430048, VAT Number: 101957725