Quantcast
Channel: SciChart
Viewing all 303 articles
Browse latest View live

SciChart 2021 – What you might have missed & What’s Coming Soon in 2022

$
0
0

So another year is over, how quickly it has passed!

In many ways 2021 has been an incredible year of growth for SciChart, and I wanted to share with you some of our progress in 2021 to ensure you didn’t miss anything, what’s available to you as a customer of SciChart and what is coming soon in 2022. 

Many customers are delighted with our software, and we consistently receive a 5* rating on external review sites. With this year’s improvements we will help you create innovative, cutting-edge charting applications with incredible performance, features and stability, helping you win business & outpace your competitors. 

Releases and Updates in 2021

We’ve made lots of releases and updates in the past year in our WPF Charts, iOS/Android/macOS charts as well as JavaScript Charts. Take a look at the release notes recap below to see what’s new! If you are not up to date, then do take the opportunity to update. There have been loads of improvements.

WPF Chart Releases

In 2021 we had several releases for SciChart WPF – our flagship product still used by thousands of developers worldwide. SciChart WPF enjoyed a strong year with the following milestones:

SciChart WPF 6.3 released in Jan 2021. This included

  • .NET 5 support
  • Heatmap Peak Detection
  • Audio Analyzer example
  • Label Provider example
  • Performance improvements
  • various bugs fixed and improvements

In July we released SciChart WPF v6.4, which included:

  • 3D Lighting modes
  • multiple axis markers for Series Value Modifier
  • off-screen export examples
  • plus multiple important bug fixes and improvements
Above: The Parallel Coordinate Plot type was released as part of SciChart WPF v6.5

SciChart WPF v6.5 was also released at the end of October 2021, another big upgrade, including:

  • Official Windows 11 Support
  • .NET Framework v6 Support
  • Parallel Coordinate Plot chart type
  • Uniform Data Series Chart Type – enabling ultra big-data applications where only Y-values are needed (X-values are evenly spaced)
  • Digital Logic Analyser example with up to 64 Billion Datapoints rendered.
  • Shared Render Timer for better chart synchronisation and performance in multi-chart applications.
  • Many other important bug fixes and improvements.
WPF Consultancy Projects

The WPF team also carried out several consultancy projects throughout the year. One was for a Formula One team, and we’ve blogged about SciChart’s use in F1 here.

Above: SciChart is used by multiple F1 teams. We blogged about the importance of high performance, configurable charts in F1 and similar industries.

Another was an Electronic Test Measurement manufacturer, where our team built an entire app from scratch to display billions of data-points acquired from digital logic analyser. Case study coming on that soon, but in the meantime check out the new example we have in our WPF Chart Examples Suite – the Digital Analyzer.

WPF Performance

Several strides were made in performance this year as well. The introduction of UniformDataSeries allowed us to render massive datasets – up to 64 Billion Datapoints was demonstrated in this video.

We demonstrated up to 64 Billion data-points in a WPF Chart using our new UniformDataSeries, demonstrated in the Logic Analyser example.

Our team also re-evaluated performance vs. our strongest competitor, and blogged about performance test results. SciChart WPF is still by far the world’s fastest WPF chart control, in a wide variety of real-world test cases. Beware of claims to the contrary!

Above: Performance Test Results of SciChart WPF vs. our strongest competitor. In a wide range of real-world test cases, SciChart was found to be the fastest chart, in some cases several thousand percent faster! Read more at SciChart – The Fastest WPF Charts. Period. 2021 Test Results Update
WPF Process Improvements

Finally the WPF team also pioneered work in the analysis of tech-support requests, finding out what our most common problems were and adding automated testing to improve the quality around those areas.

Reducing our tech-support load by pre-emptively finding and fixing common issues and upgrading our build & deployment pipelines will give our team better efficiency in 2022 and beyond.

iOS/Android/macOS Chart Releases

Our native mobile charts had several releases this year, including:

SciChart IOS/Android v4.2, released in January which featured:

  • SeriesValueModifier
  • XCode 12 support
  • macOS Big Sur support
  • plus several bug fixes and improvements

The mobile team blogged about XCode 12 & Big Sur support here.

In July 2021, SciChart iOS/Android v4.3 was released. This release featured:

  • Major improvements to label formatting for financial/trading charts
  • Stacked series improvements
  • ability to modify an existing theme
  • and improvements to the Swift API for our iOS/macOS chart controls.
Objective-C frameworks in Swift's world (a.k.a. interoperability to Swift)
The mobile team improved our Swift API for iOS/macOS applications in July, enabling a much improved dev process for Swift app developers. Read more at the following blog post.

The mobile team blogged about the challenge/solution of the Swift API here. Something we discovered when creating the SciTrader App. The result of this work was a complete overhaul to our Objective-C / Swift interop, massively improving the usability of SciChart iOS in Swift (macOS/iPad/iOS) applications.

The SciTrader App & SDK

In November 2021 the mobile team released the SciTrader App, a showcase application which you can download from the Apple App Store / Google Play Store.

The SciTrader App was released in Nov 2021: a native iOS/Android trading app. SDK / Financial Chart Library coming soon! Find out more at https://scitrader.io

In the future we plan to make this available as a financial chart library on both native iOS/Android and JavaScript.

You can learn more about SciTrader at https://scitrader.io or read our blog post on the SciTrader App & SDK

Kotlin Examples for SciChart.Android

Finally, in December we’ve now published the Android chart examples as both Kotlin and Java. These are viewable by cloning or downloading SciChart.Android.Examples on Github and will be on the website shortly.

JavaScript Chart Releases

2021 was a big year for SciChart.js – our newest product – a high performance JavaScript/TypeScript WebGL chart library.

In Feb 2021 we released SciChart JavaScript v1.2, which included

  • Horizontal/VerticalLineAnnotation types
  • Editable / draggable annotations
  • Digital (step) Line, Band and Mountain chart types
  • styling of axis and chart borders
  • plus several bug fixes and improvements.

In March we released SciChart.js v1.3. This release featured:

  • Spline line series
  • Spline Mountain series
  • Spline band chart type
  • JavaScript Chart animations
  • Dashed line styling
  • plus several bug fixes and minor improvements.

We also updated the SciChart.js demo site at https://demo.scichart.com with a new look and style.

Two minor patches to SciChart.js: v1.3.1514 and SciChart.js v1.4 were released in April & May. These included:

  • critical bug fixes including memory leaks
  • new examples
  • new documentation
  • loading SciChart.js & Wasm from CDN for vanilla javascript support
  • pinch zoom and touchscreen support
  • as well as several minor improvements.
SciChart.js had several releases in 2021, including version 2 which added significant functionality to our JavaScript Chart Library

Finally in October we released SciChart.js version 2. We had been working on this all year and this major release included:

  • Series Selection
  • Datapoint Selection
  • Logarithmic Axis
  • Central and Inner Axis
  • Vertically Stacked Axis
  • Axis Label Customisation
  • The Builder API
  • JSON Serialization
  • Pointmetadata API
  • Filters and Data Transforms API
  • Style Animations and Data Animations
  • Transparent Backgrounds
  • Image Backgrounds
  • SciChartOverview control
  • Retina display Support
  • plus Miscellaneous improvements and all new documentation and examples.

Support Stats

That’s not all! A large part of what we do is supporting our customers. SciChart is rated 5* for technical support, and we respond to literally thousands of requests to ensure that you are able to build your projects without interruption.

SciChart handles thousands of support requests, forum questions and sales enquiries per year!

  • During 2021, our team efficiently managed 1,789 sales requests (8.1 per working day) 
  • 1,048 support tickets (4.7 per working day), each with tens of emails back & forth with tens of thousands of emails read & sent. 
  • As well as hundreds of forum questions
  • Hundreds of bugs fixed in SciChart WPF, iOS/Android and JavaScript
  • Hundreds of nightly build releases made across NuGet, Cocoapod/SwiftPM, Maven and npm. 

We’ve also made multiple improvements to our processes, testing and support including:

  • Updating and re-writing deployment scripts
  • Creating 5 Test Suites with hundreds of test-cases for automated and manual testing.
  • Developed metrics for quality assessment.
  • Analysed support load & frequently asked questions on our support desk.
  • Introduced testing plans & summary reports for every release.
  • Automated many manual test cases to reduce testing burden

All of this will improve quality of our work and efficiency so that we can continue to serve our customer base in 2022 and beyond.

Usage & Growth Stats

So it’s great that we’ve made so many releases, and answered so many support & sales requests, but who is using our software?

SciChart usage continues to grow: we saw a +25% Year on Year increase in licensing sales in 2021. This compounded on a +20% YoY increase in 2020. The number of users continues to grow and more and more impressive projects use SciChart.

SciChart is used by thousands of customers around the world, in cutting-edge research, technology, engineering & financial applications
  • This year SciChart became the defacto standard for F1, being used by the majority of top F1 teams.
  • Our software has powered research & development worldwide, including research into Covid-19 ventilators, cancer research.
  • SciChart is now used by over 150 educational institutions & universities, including MIT, Stanford, Imperial College.
  • Our trading application SciTrader is already at almost 3,000 monthly active users, despite launching only a couple of months ago.

We’ve made thousands of impossible projects possible with our software and continue to see amazing applications & services built with our chart libraries around the world.

What’s Coming in 2022

So what’s coming soon? We’re continuing to innovate and build out our cross-platform charting libraries. What you can look forward to in 2022 includes:

  1. We continue to develop the C++ core of our charts, enabling more features to be shared across platforms. For example, we have written the text label rendering entirely in C++ which will improve performance in our chart libraries across platforms and offer a unified experience for text rendering.
  2. Work like this can eventually can result in a C++ only version of SciChart but also enables WinUI, a new XAML technology which is built on top of C++ and wrapped by .NET. We are seeking companies who want to accelerate our roadmap for example into Linux or WinUI for native apps. If either project is valuable to you, get in contact and to discuss feature-sponsorship (roadmap acceleration): where we can focus resources and build dedicated features or platforms for you in exchange for a commitment fee.
  3. We continue to maintain our WPF charts, adding new features and continuously improving for our userbase.
  4. We are developing a financial charting library for adding SciChart into trading applications. The SciTrader SDK will be announced & released at some point in early 2022 and will support native iOS, Android as well as browser (JavaScript) apps.
  5. Our JavaScript charts will be developed to add more chart types, more demos and examples to showcase this powerful, high performance JavaScript chart library.
  6. We have a performance release for our JavaScript chart library due in early 2022 which will include more features from our Visual Xccelerator(TM) engine to allow tens of millions of data-points in realtime, faster loading & drawing.
  7. We are still taking feature requests, and working as consultants to integrate, customise our charts and build applications in scientific & financial fields. If expert consultancy is of interest to you, then contact us.
  8. Not only that but expect changes to our website, marketing & content as we continue to focus on growth in 2022 and beyond.

Finally, thank you to all our customers who have supported us this year, reviewed us, encouraged us and of course purchased from us. We hope to make you very pleased about your purchasing decisions in the coming 12 months!

Best regards,
Andrew

The post SciChart 2021 – What you might have missed & What’s Coming Soon in 2022 appeared first on Fast, Native Charts for WPF, iOS, Android, JavaScript .


SciChart WPF v3,4,5 Licensing & Activation End of Life

$
0
0

We’re announcing the End of Life (EOL) for the licensing & activation system that shipped with SciChart WPF versions 3, 4 & 5 from 2013.

Please see below for FAQs and remedies. In brief:

  • Licensing & Activation in these versions depended on a third-party licensing component which has gone ex-support.
  • After the EOL date developers will not be able to activate or deactivate licenses for v3, v4 & 5 on new PCs.
  • However, existing activated developer licenses will continue to work.
  • and deployed applications with SciChart v3, 4 & 5 will continue to work.

The licensing wizard that is going EOL looks like this. If you are using this licensing wizard in your applications or you are actively developing applications with SciChart WPF v3, 4 or 5 then this announcement affects you.

How to Activate SciChart using the SciChart Licensing Wizard

FAQs

Q: Who is affected by this announcement?

If you are a customer of SciChart WPF actively developing using version 3, 4 or 5 and want to activate or deactivate developer licenses then this announcement affects you.

Q: What happens after the EOL date?

After the EOL date we can no longer ensure that activation, deactivation will work for SciChart WPF v3, 4 and 5. We will continue to run licensing services for these versions as long as reasonably possible.

Note: customers with SciChart WPF v6 are not affected and deployed applications with any SciChart version are not affected.

Q: Why are we announcing End of Life (EOL) for Licensing & Activation versions 3, 4 & 5?

The licensing & activation system for SciChart WPF v3, v4 and v5 relied on a third party licensing component which went ex-support.

We’ve moved to our own in-house licensing in SciChart WPF v6 which we now support, but this is not backward compatible with older version(s) of SciChart.

Q: When is the EOL date?

We’ve set a provisional ex-support date of 31st March 2022, however we will continue to run version 3, 4 & 5 licensing services for as long as reasonably possible.

Q: Will my Deployed Applications continue to work?

Yes. Applications that you have deployed with SciChart WPF v3, v4 & 5 will continue to work as these are not dependent on licensing services but have an offline runtime key.

What alternatives are available to me?

Recommended: Upgrade to SciChart WPF v6

SciChart WPF v6 contains a new, completely in-house licensing mechanism which we have built and released in January 2020. This is now the supported method for licensing & activation going forward. There is also a new Cross-Platform Licensing Wizard which works with SciChart WPF v6 and above.

We recommend to all users of SciChart WPF v3, v4 and v5 with actively developed projects where you need to activate/deactivate developer licenses should upgrade to SciChart WPF v6.

What Support is Available to me?

If you are developing an application with SciChart WPF v3, 4 or 5 we are able to offer the following support to ensure continuity of service.

1. Migration Assistance to SciChart WPF v6

Our staff are able to assist on migrating large or complex projects to SciChart WPF v6 on a time & materials basis. You also may be eligible for renewal/upgrade discounts to migrate to the latest version.

Please Contact us to find out more.

2. Extended Support for SciChart WPF v3, v4, v5

If you have an actively developed application and it is difficult to upgrade to SciChart WPF v6 in a timely manner, we may be able to assist by offering extended support for the v3, v4, v5 versions for an extended support fee.

Our preferred route would be to assist you with upgrading to SciChart WPF v6 but we are able to offer this option where necessary.

Contact us to discuss

We will be sending out email newsletters to affected customers soon and sending out reminders if you activate an older version of SciChart.

If you are in the affected group, please contact us to discuss the options above. We have solutions that can help you migrate to SciChart WPF v6 and will be delighted to help you in any way to continue developing applications with SciChart.

Best regards,
Andrew
[SciChart Team]

The post SciChart WPF v3,4,5 Licensing & Activation End of Life appeared first on Fast, Native Charts for WPF, iOS, Android, JavaScript .

SciChart is the fastest JS Chart library available – and why that matters in today’s world

$
0
0

It’s been just over a year since we released SciChart.js: High Performance Realtime Charts for JavaScript apps. From the start, our goal has been to create the fastest possible JavaScript Charts, but also produce visually appealing, productive, highly configurable and flexible / powerful TypeScript / JavaScript charting controls, capable of being used in demanding business apps.

Our first version of SciChart.js was able to draw a million data-points in a browser, and we have only worked to improve our performance since then.

Version 2.1 of SciChart.js (in BETA now) can draw over 10 million datapoints and has even been tested up to 100 million datapoints. That’s more than enough to show the entire history of Bitcoin in a 1-minute chart, or visualise data in the most demanding applications.

Why would you need this speed in a Js Chart?

Currently most JavaScript applications use charting in the sense that they may have a few hundred to a few thousand data-points on an infographic, chart or graph.

Most existing JavaScript Chart Libraries can only render a few thousand points before slowdown. However, trends in Js application development are changing.

Most JavaScript Chart Libraries can render a few thousand points before slowing down. Big-Data is a trend across industries and the amount of data is only getting bigger. If the speed of your JS Chart Library is not an issue now, it will be soon.

There are a lot of legacy native-code applications in Science, Engineering and Finance which need to render millions of data-points from big-data stores, sensors (telemetry, IoT). Even hardware devices like electronic test equipment, process monitoring equipment can have integrated displays which include real-time charts to visualise data. Many legacy applications are moving toward npm / Typescript / React as a UI tech stack.

Big-Data is a trend across industries and the amount of data to visualise is only getting bigger. If the performance of your JS Chart Library is not an issue now, it will be soon. With new tools like SciChart allowing you to visualise bigger datasets, it will become a competitive advantage to be able to visualise and gain valuable insights from the rich data your organisation has collected.

Before SciChart, there was no viable solution for big-data, dynamic or real-time charts in JavaScript applications, however we’ve built an award-winning, cutting-edge solution based on gaming technology, with WebGL and WebAssembly to provide high performance JavaScript Charts.

SciChart solves tomorrow’s problems today: visualising large datasets, or dynamic datasets in data-intensive applications.

Charting Performance Test Cases

We’ve built a demanding test-suite which compares the performance across a number of chart components. Included in the test are the following JavaScript Chart libraries:

  • Plotly.js – an SVG and WebGL powered JS chart
  • HighCharts – SVG powered JS charts
  • HighCharts Boost – a higher performance plugin for HighCharts
  • Chart.js, an open source library based on HTML5 Canvas
  • SciChart.js, our WebGL & WebAssembly powered chart library

Note: Other chart libraries were tested internally but not included in the results below, as we are on focussing on the most popular libraries.

We put them head to head in a demanding performance test that stress your CPU & GPU to the max to find out which is the fastest.

These are the test cases:

Demanding, Varied test cases stress different types of drawing or rendering. In our JavaScript Chart Performance Comparison we test:

  • Plotting JS Line charts with hundreds, or thousands of line series
  • Plotting JS Scatter charts with real-time updates
  • XY Lines (scatter line). A challenging test case as it can’t be downsampled easily.
  • Column Charts. Columns require extra geometry and are difficult to optimise
  • Mountain or Area Charts. Also require extra geometry
  • Candlestick Charts. An important test case for stock chart applications which demand good rendering performance.
  • Realtime JS Chart Cases. One with scrolling line series (for realtime monitoring applications) and another with new data added to the chart at high speed.

The Performance Comparison Test Results

You can find the test results of our JavaScript Chart Performance Comparison below.

Test Results Table

Below you can find the performance test results in table form. The test case & parameters are on the left, and the results are in FPS (Frames per second). Drawing speed is measured in FPS (Frames per second – Higher is Better), meaning, the average number of redraws per second during the test. An FPS result above 30 is smooth to the eye.

Heatmap colours highlight the winners & losers. On the right, find the Speed Increase of SciChart.js compared to the second fastest JS Chart Library as a percentage.

Performance Comparison between SciChart.js, HighCharts (with and without Boost), Plotly.js and Chart.js. Tests carried out with SciChart.js v2.1 BETA

We’ll draw a conclusion below, but some immediate takeaways from the table above:

SciChart.js is incredibly fast!

Of the test results which passed, the average speed increase was 1,975% (~20x faster). The maximum speed increase was 11,126% (111x faster than the second fastest competing JavaScript Chart). In some cases, SciChart.js was able to draw hundreds, or even thousands of times more data.

More on the performance test results below…

Test Results in Chart Form

Let’s see the test results in chart form. Click on a chart to view full size!

The bar charts above make it easier to see how SciChart.js (green) is performing vs. the competition. Even with 1 to 10 million data-points, SciChart.js is drawing charts at high refresh rates, meaning that SciChart is able to plot a chart in record time.

Some competing JS charts drop off very quickly. Take a look at the Candlestick chart test for example. All competitors are struggling with only 1,000 candles. At 10,000, they can barely redraw. Only SciChart.js can handle millions of candlesticks – enough to plot the entire history of Bitcoin in a 1-minute timeframe.

Performance Comparison Conclusions

So, some pretty incredible performance results above for a variety of popular JavaScript chart libraries! What conclusions can we draw from these?

  • According to the Performance Comparison Results, most JavaScript Chart libraries are unsuitable for datasets over a few thousand points, or dynamic updates on the chart.
  • Most perform poorly once the amount of data reaches only a few thousand points.
  • All struggled to draw more than a thousand candlesticks in stock chart configuration.
  • Many failed / crashed when larger datasets were given to the chart. For example, HighCharts.js simply crashed (even with boost module) when attempting to draw 500 line series with 500 points.

How does SciChart.js Compare?

  • In demanding and varied test cases, SciChart.js beat all competing JavaScript Chart libraries in performance tests carried out.
  • For several test cases, competing charts failed to draw (crashed or hanged the webpage).
  • For the above test cases, SciChart.js was on average 1,975% faster (~20x faster) than the 2nd fastest competitor, and a maximum of 11,126% faster (111x faster!)
  • For Candlestick Charts, SciChart.js can draw 1,000x more candlesticks than competing libraries, allowing you to show large histories such as years of 1-minute stock, forex or cryptocurrency data in JavaScript.
  • For Column Charts, SciChart.js was also able to show 100x more data than competing charts
  • SciChart.js was able to draw thousands of line series, opening up advanced statistical analysis or comparisons which are not possible with other JS Chart libraries.

If you are building an application with demanding data-visualisation requirements, or porting from Windows (native code) to JavaScript, then SciChart is the only viable solution today for big-data applications, complex and data-intensive apps. If chart flexibility, rendering performance and reliability are mission critical to the success of the app, and your business, then we hope we’ve demonstrated why we remain the expert’s choice.

Find out More at the link below.

JavaScript Charts by SciChart

JavaScript Charts by SciChart are extremely fast and allow robust, high performance data-visualisation across a number of chart types & scenarios. Learn more about the features and start a trial today by clicking the button below.

Learn More

The post SciChart is the fastest JS Chart library available – and why that matters in today’s world appeared first on Fast, Native Charts for WPF, iOS, Android, JavaScript .

SciChart WPF v6.5.1 Released!

$
0
0

We are pleased to announce that the SciChart WPF v6.5.1 build 26063 has now been released! This update includes a number of stability fixes and performance & memory enhancements.

This release is a drop-in replacement for 6.x and it is backward compatible for users of SciChart WPF version 6.

What’s New in SciChart v6.5.1?

Major Improvements in v6.5.1

  • Improved performance of UniformXyDataSeries in FIFO mode and with realtime updates
  • Improved reliability of UniformXyDataSeries
  • IMPORTANT: VisualXccelerator is set to be the default renderer. You no longer have to enable VisualXccelerator engine in your charts, and there will no longer be a double render on startup when switching from software to hardware 
  • Improved reliability of C++ interop reducing AccessViolationException crashes
  • Improved code quality with a Static Analysis tool

Important Changes

  • Removed properties that were marked as “Obsolete” and caused a runtime error when used
  • Removed types that were marked “Obsolete” and caused a runtime error when used:
    • ModifierTouchManipulationArgs
    • MountainRenderableSeries3DViewModel
    • MountainRenderableSeries3D
    • MountainSceneEntity
  • Removed VisualXcceleratorEngineHelper class from SciChart.Examples.ExternalDependencies. It was used to set VisualXccelerator by default in the Examples Demo

Bug Fixes

  • SC-6121 Fixed issue with non-consistent dashed lines when software renderers are used
  • SC-6203 Fixed crash with Tooltips in MouseHover mode after they ‘hang’ on a SciChartSurface
  • SC-6245 Fixed AnnotationsCollection not handling the “Reset” action properly
  • SC-6246 Fixed DataPointSelection not working with Touch screens
  • SC-6258 Fixed a bug when a removed axis still appeared on a chart
  • SC-6266 Fixed exception thrown in HeatmapColorPalette
  • SC-6279 Fixed ArithmeticOverflowException in UniformXyDataSeries when VisibleRange grew too big
  • SC-6297 Fixed issue with access to Heatmap.ColorMap from different threads
  • SC-6309 Fix for chart crashes after checking or unchecking “AntiAliasing (4x MSAA)” mode
  • SC-6316 SharedRenderTimer crashes with TaskCancellationException
  • SC-6320 Tooltip mode for “Stacked Mountain Chart” shows data on empty area
  • SC-6326 XyzDataSeries3D doesn’t update after Clear() call
  • SC-6327 SciChart3D still renders if DataSeries is set to Null
  • SC-6335 Fixed checking of blacklisted graphic adapters for GPU Capability Test
  • SC-6306 Fixed software renderers to draw Columns at ZeroLineY (zero height columns)
  • Fixed the issue with HighQualityRenderer skipping over points
  • Fixed an issue with GPU Capability Tester when building it in Unicode Mode

Documentation Updates

Improvements in Examples Demo

  • Improved the “Digital Analyzer Performance Demo” example
  • Added a checkbox to examples with Heatmaps to demonstrate LinearTextureFiltering
  • SC-6454 Fixed issue with Checkbox grouping in the Demo App

We have also added a number of tests for covering abovementioned fixes and changes.

Where to get SciChart WPF v6.5.1?

SciChart WPF v6.5.1 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from Nuget
  • By cloning and compiling the examples source code on Github.
  • By cloning or downloading the SciChart source code on Github (source code customers only)

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

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

Best regards,
Yuriy
[SciChart Team]

The post SciChart WPF v6.5.1 Released! appeared first on Fast, Native Charts for WPF, iOS, Android, JavaScript .

SciChart.js v2.1 Released!

$
0
0

We are delighted to announce that the SciChart.js v2.1 build 2267 has now been released!

This backward-compatible update includes a number of improvements, fixes and some massive performance improvements for big-data & realtime rendering.

This release is a drop-in replacement and it is backward compatible for users of SciChart.js version 2.

What’s New in SciChart.js v2.1?

Major Performance Improvements in v2.1

We’ve used our expertise high performance computing in other platforms of SciChart to make massive improvements to chart rendering, updating and startup speed in SciChart.js v2.1.

Here is a quick summary of the improvements.

DataSeries Creation & Updating Speed

For big-data applications or dynamically updating charts, a large bottleneck was simply the time to create and update data.

By looking at memory optimisation and taking advantage of low-level code optimisations in WebAssembly we’ve improved the following DataSeries operations significantly, which results in much faster, more responsive charts. Especially noticeable in dynamic or real-time contexts.

DataSeries OperationBeforeAfterImprovement
Create a DataSeries with 1Million Datapoints35ms10ms3.5x faster!
Get XRange for DataSeries with unsorted data
(required for auto ranging)
550ms3.4ms161x faster!
Optimising DataSeries.clear() & append() with 1M datapoints
(required for dynamically updating charts)
386ms4.68ms82x faster!
Optimising DataSeries.getNativeIndices() with 1M datapoints
(required for candlestick charts)
367ms22ms16x faster!
DataSeries.insertRange() with 1k datapoints
(required for prepending or inserting data)
132ms0.69ms191x faster!
DataSeries.removeRange() with 1k datapoints
(required for removing a block of data)
730ms0.33ms2,212x faster!

Data interactions with SciChart.js are now significantly faster, whether you are manipulating data frequently in a Js chart, dynamically updating charts or simply visualising big datasets, you will notice large performance improvements when using SciChart.js v2.1 over previous versions.

Introducing Smart Data-point Resampling

Our Windows, mobile (iOS/Android) versions of SciChart have included data-point resampling for a long time. Datapoint resampling ensures the minimum viable data-set is displayed on the screen. Resampling is intended to be visually lossless, and automatic. It occurs for RenderableSeries before the series is rendered, if required.

This code, being part of our Visual Xccelerator Engine in C++ has now been included in SciChart.js WebAssembly module and brings massive performance improvements to SciChart.js for big-data scenarios.

Compared to version 2.0, SciChart.js v2.1 has significant performance improvements for chart rendering:

SciChart.js v2.1 Speed Improvements (percent) vs. SciChart.js v2.0. JavaScript charting performance up to 4,000% faster is seen with our chart library
Above: Overall performance (chart rendering) improvements in SciChart.js v2.1 compared to SciChart.js v2.0. Performance improvements of up to 4,000% were observed in our JavaScript Charting library!

Other Performance Improvements

  • Improved raw drawing speed of our underlying graphics engine by over 100%
  • Improved performance of charts with RolloverModifier tooltips
  • Added Async Label Creation option with global application or per-chart caching (see documentation)
  • Optimised data transfers from JavaScript to WebAssembly

Performance Results

We’ve compared a number of JavaScript Chart Libraries such as Plotly.js, HighCharts, Chart.js vs. SciChart.js to evaluate chart drawing performance and published the results in a second article: SciChart is the Fastest JS Chart Library – and why that matters in today’s world.

SciChart.js is the Fastest JS Chart Library available

Here’s why that matters in today’s world

Most JavaScript Chart Libraries can render a few thousand points before slowing down. Big-Data is a trend across industries and the amount of data is only getting bigger. If the speed of your JS Chart Library is not an issue now, it will be soon.

Read more

Improvements to SciChart.js and Documentation

  • Auto-detecting data distribution flags in DataSeries (flags dataSeries.isSorted, dataSeries.containsNaN). Specifying these flags gives better performance in big-data scenarios.
  • Added labels support outside of a Pie Chart
  • Added Documentation of how to use SciChart.js in vannilla HTML/Js (without npm) using our Browser Bundle served by CDN
  • Added Documentation for Performance Tips & Tricks
  • Added Documentation for new Data-point Resampling features
  • Added Documentation & Examples for new Generic Animations API
  • Added Generic Animations example to the Demo app
  • Optimizations for Annotation notifyPropertyChange method not to be called if the property has not changed
  • Better error message if wasm cannot be loaded, or the wrong version loaded
  • Add a property to configure stacked axis length (SCJS-954)
  • Allow passing div element reference into SciChartSurface.create to make SciChart.js possible to use in shadow DOM (SCJS-974)
  • Display performance warnings in dev environment (SCJS-984)
  • Improve guard checks for data series creation (SCHS-981)
  • Snap RolloverModifier vertical line to data points (SCHS-623)
  • Optimize getXRange() algorithm for unsorted data (SCJS-888)
  • Optimize filling wasm memory from js (SCJS-911)
  • Add explanation error message for trial expired on old version (SCJS-886)
  • Add AxisRenderer.axisSize property which allows setting axis label width
  • Add includeAxis property to MouseWheelZoomModifier
  • Add AxisRenderer.axisThickness (SCJS-953)
  • Prevent CursorModifier axis labels to be cut out of the chart (SCJS-980)
  • Improve chart performance when using RolloverModifier and CursorModifier

Bug Fixes in SciChart.js v2.1

  • Fix an error for LineAnnotation with a hidden label (SCJS-850)
  • Fix several SciChartOverview-related bugs: handling flipped coordinates properly (SCJS-839), setting initial overview range and area correctly (SCJS-851), a scrolling issue (SCJS-839), updating SciChartOverview dimmed annotations (SCJS-885), setting overview visible range to main chart visible range (SCJS-943), visible range limit (SCJS-941), LogarithmicAxis (SCJS-942),
  • Several SciChartOverview improvements: allow passing surface and axis options on overview create (SCJS-873), support for CategoryAxis
  • Fix a resize surface issue for annotation adorner layer (SCJS-844)
  • Added FloatArray64 array support for DataSeries
  • Fix MouseWheelZoomModifier zooming in issue for LogarithmicAxis (SCJS-881)
  • Fix axis labels population for flipped coordinates (SCJS-884)
  • Fix RolloverModifier tooltip to use the series stroke as the default color (SCJS-776)
  • display the trial watermark correctly for small charts (SCJS-892)
  • Fix clearing the legend with sciChartSurface.chartModifiers.clear() (SCJS-916)
  • Fix a caching problem for SmartLabelProvider (SCJS-920)
  • Fix mouse wheel and zoom extends on inner axis with applyToChart property set to False
  • Fix annotation borders calculation to take into account xCoordShift (SCJS-959). This bug resulted in an incorrect hit-test for annotations.
  • Fix drawing render context annotations below series (SCJS-919)
  • Fix rendering category axis without data (SCJS-946)
  • Fix RolloverModifier tooltips bug (SCJS-975)
  • Fix CursorModifier to apply axisLabelFill and axisLabelStroke correctly (SCJS-979)
  • Fix an infinite loop problem for multiple charts (SCJS-988)
  • Fix RolloverModifier error when it was used without a data series
  • Fix runtime license not applied if it has started looking for license wizard (SCJS-991)
  • draw gradient correctly when canvas resize (SCJS-826)
  • Handle visibleRangeLimit properly when scrolling (SCJS-962)

Pricing & Licensing

Existing customers with an active support & updates subscription will get the update for FREE.

For new customers or prospects, please contact our sales team and we will be happy to help!

How to get SciChart.js v2.1

Developers – Node/WebPack

npm install scichart

Don’t forget to see our Tutorials on setting up Npm projects with Webpack!

Developers – Browser Script

For developers using vanilla JavaScript (no Node Package Manager), you can load SciChart.js directly in browser. Add this script to your Html head and away you go.

// Add this script to head
<script src="https://cdn.jsdelivr.net/npm/scichart@2.1.2267/_wasm/scichart.browser.js" crossorigin="anonymous"></script>

// Now Configure SciChartSurface in code to load the wasm file from CDN
SciChart.SciChartSurface.configure({
    dataUrl: "https://cdn.jsdelivr.net/npm/scichart@2.1.2267/_wasm/scichart2d.data",
    wasmUrl: "https://cdn.jsdelivr.net/npm/scichart@2.1.2267/_wasm/scichart2d.wasm"
});
// Now create a SciChartSurface as you would normally!
const { sciChartSurface, wasmContext } = await SciChart.SciChartSurface.create("div-id");

Developers – Getting Started Guides

We’ve collected all the links to help you get started under scichart.com/downloads. Go there and take a look. If you have any questions just ask!

Best regards,

Andrew
[SciChart Team]

The post SciChart.js v2.1 Released! appeared first on Fast, Native Charts for WPF, iOS, Android, JavaScript .

SciChart iOS, macOS, and Android SDK v4.4 is Released!

$
0
0

We are pleased to announce that the SciChart iOS, macOS, and Android v4.4, have been released!  It includes a lot of improvements and bug fixes. It is recommended for all users of SciChart to update to the latest version! Please see more information below.

What is new in SciChart iOS/macOS/Android v4.4

In this minor release our team brings to you a bunch of cool stuff, including the following major improvements:

  • Heavily requested examples written in Kotlin (plus Kotlin DSL extensions as a bonus)
  • iOS simulator finally supports Metal via corresponding render surface
  • Brand new examples showcasing built-in Transformations API:
    • Animate appending point in “Animating line chart” – iOS & macOS and Android examples
    • Animate data updates in “Animating Stacked Column Chart” – iOS & macOS and Android examples

SciChart Android examples brought to Kotlin

Kotlin language becomes more and more popular and developers start using it much more in their projects nowadays. Not surprising that we were receiving lots of requests about samples written using exactly in Kotlin and not Java. Hence we spent some time and not only implemented examples but also added some Kotlin DSL extensions for the SciChart library, and now our simple LineChart Example looks like below:

override fun initExample(surface: SciChartSurface) {
    val fourierSeries = DataManager.getInstance().getFourierSeries(1.0, 0.1, 5000)

    surface.suspendUpdates {
        xAxes { numericAxis { visibleRange = DoubleRange(1.1, 2.7) } }
        yAxes { numericAxis { growBy = DoubleRange(0.1, 0.1) } }
        renderableSeries {
            fastLineRenderableSeries {
                dataSeries = XyDataSeries<double, double="">().apply {
                    append(fourierSeries.xValues, fourierSeries.yValues)
                }
                strokeStyle = SolidPenStyle(0xFF279B27)

                sweepAnimation { interpolator = DecelerateInterpolator() }
            }
        }
        chartModifiers { defaultModifiers() }
    }
}
full example available on our GitHub

And that’s it. With such a concise Kotlin snippet, you get your line chart with pinch, zoom and pan gestures out of the box.

All of our examples are available in both – Java and Kotlin languages. Language can be switched by a simple tap in the application toolbar (try it out in our SciChart Android examples app), like so:

Moreover, all of the Kotlin DSLs are available in our public examples repository, so you can use those in your applications if you want.

Metal is finally available in the iOS simulator

This feature was requested very often. Some wanted just be able to test and debug applications directly on the host macOS machine, while others want to be able to automate screenshots while publishing to the AppStore. It doesn’t really matter what’s the real use-case, having Metal in a simulator is useful on its own, so we finally added Metal support for SciChart iOS which is running in a Simulator. It’s much more performant in comparison to OpenGL in simulator. It is super smooth for both – 2D and 3D charts – so we are glad it’s finally here:

Custom animation examples

Some of our customers would like to implement append data with animation instead of point just appearing on screen. Another would like to smoothly update existing data on a screen. Sometimes animations are very useful while visualising data. We do also receive requests about tricky custom animations. There were custom animations documentation available, but our underlying Transformations API is fairly vague and complex. So we added the following examples into our demo apps, to bring more light onto just mentioned APIs.

Animating Line Chart – iOS & macOS and Android examples

Animate data updates in “Animating Stacked Column Chart” – iOS & macOS and Android examples

Source code for our examples are as usual available in our GitHub repositories:

Documentation about how to get the above result using Transformations APIs are available via the following links:

Other Improvements and bug fixes

SciChart Android:

  • fixed PieChart gesture modifiers doesn’t work
  • SC_DROID-810 – fixed incorrect HitTest results with FIFO series
  • SC_DROID-813 – fixed creation pens with opacity
  • SC_DROID-814 – fixed resizing of underlying primary target to correctly handle resizing of chart;
  • SC_DROID-815 – fixed NullPointerException in SeriesSelectionModifier
  • SC_DROID-817 – fixed regression: TooltipModifier3D stopped working
  • fixed incorrect handling of opacity by canvas RenderSurface when rendering lines
  • improvements to underlying data distribution providers and resampling algorithms
  • deprecated ISmartList, because IDataDistributionProvider‘s flags should be outside it
  • added ported CalendarUnit based label formatter for DateAxis
  • refactored PinchZoomModifier, RubberBandXyZoomModifier and ZoomPanModifier to allow overriding for what exact X/YAxes the modifier should be applied
  • fixed ZoomPanModifier which shouldn’t pan chart outside modifier surface
  • refactored NiceDoubleScale calculations to delay overflow of double which results Infinity results; removed generic param from delta calculator because it isn’t actually used
  • [examples] moved accessibility example to sandbox repository
  • [examples] replaced show source code with redirection to GitHub for SciChar Android Examples
  • [examples] deprecated export project feature

SciChart iOS / macOS:

  • fixed UIColor category methods are no longer conflicts with Dynotrace library
  • added some missing strong attributes
  • fixed missing SCILineArrowAnnotation in examples
  • ported CalendarUnit based label formatter for SCIDateAxis
  • SCIOS-918 – embedded dSYM and BCSymbolMap into *.xcframework
  • improved some method signatures translate better to Swift
  • exposed visible range animation related classes
  • added missing setVisibleRangeAnimator
  • refactored SCIPinchZoomModifier, SCIRubberBandXyZoomModifier and SCIZoomPanModifier to allow overriding for what exact X/YAxes the modifier should be applied
  • fixed drawNaNAs property that didn’t worked for SCIFastMountainRenderableSeries

SciChart Xamarin.iOS and Xamarin.Android:

  • added missing NullAllowed attributes and bindings
  • added missing constructor SCIDefaultSeriesValueMarker
  • update bindings for SCISeriesValueModifier and SCIThemeManager
  • lots of small underlying improvements for bindings

Where to get SciChart iOS / macOS / Android v4.4?

SciChart iOS & macOS

  • iOS & macOS framework is available through both CocoaPods and Swift Package Manager
  • SciChart iOS & macOS examples are available in AppStore
  • SciChart macOS examples also available as .dmg installer
  • SciChart iOS & macOS examples sources are available on GitHub
  • SciChart iOS & macOS source code is available on GitHub (source code customers only)

SciChart Android

  • Android packages is available via maven feed
  • SciChart Android examples are available in Google Play Store
  • SciChart Android examples sources are available on GitHub
  • SciChart Android source code is available on GitHub (source code customers only)

SciChart Xamarin.iOS and Xamarin.Android

  • Xamarin.iOS package is available via NuGet
  • Xamarin.Android package is available via NuGet
  • Xamarin.Android 3D package is available via NuGet
  • Xamarin examples sources are available on GitHub
  • Xamarin source code is available on GitHub (source code customers only)

You can always get our SDKs for iOS, macOS and Android from our downloads pages:

Please Note: you will need to download the Cross-Platform Licensing Wizard separately, required to activate and license SciChart Mobile SDK v3 and higher.

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

If your support has expired, Please contact sales asap to get a custom quote.

Best regards,
Nazar
[SciChart Team]

The post SciChart iOS, macOS, and Android SDK v4.4 is Released! appeared first on Fast, Native Charts for WPF, iOS, Android, JavaScript .

SciChart.js v2.2 Released!

$
0
0

We are pleased to announce that the SciChart.js v2.2 build 2378 has now been released!

This backward-compatible update includes a number of new features, improvements and bug-fixes.

This release is a drop-in replacement and it is backward compatible for users of SciChart.js version 2.

What’s New in SciChart.js v2.2?

New! Oil & Gas Showcase Demo

We created an awesome Oil & Gas dashboard demo. Designed to show the capabilities of SciChart.js for oil & gas explorers, we created a JavaScript dashboard which includes vertical charts with multiple visualisation types, trellis charts, 3d charts used in the energy sector.

DataVisualization in the Oil & Gas Industry using SciChart

We’ve created some demos with source-code showing how you can configure SciChart for Oil & Gas applications below. These have been created in both JavaScript for browser apps and WPF / C# for Windows desktop apps.

Read more

You can find a blog post of the Oil & Gas demo with source-code in both WPF and JavaScript above.

New JavaScript Impulse (Stem or Lollipop) Chart Type

We call this an Impulse Chart, but another name is Stem Chart or Lollipop Chart. This chart type is a thin stem with a pointmarker at the top. Common when visualising trends, or in pharmaceutical, scientific and electronics industries.

Lollipop Charts in JavaScript. Also known as Impulse or Stem charts

You can find a demo of the Lollipop Chart here, and documentation here.

New JavaScript Error Bars Chart Type

Error Bars were a hot feature-request and are now in the SciChart.js library v2.2 and above. Error values can be set per-datapoint and can be styled and sized according to available space or by exact pixel amounts. Error bars can be set horizontally, vertically or both and work on linear and logarithmic axis.

Error Bars in JavaScript. SciChart.js supports vertical & horizontal error bars with varying error per datapoint

You can find a demo of the Error Bars Chart here, and documentation here.

Pie Charts have Animated Updates

One of our customers pointed out that Pie Charts could not be updated. So we added updates, but we also added animated updates!

To enable animated updates, set the SciChartPieSurface.animate property = true and then update the PieSegment.value properties.

SciChart.js now supports animated pie charts with dynamic updates

You can find a demo of the Pie Chart here, and documentation here

Pie Charts have customisable Labels (SCJS-1110)

The self same customer (if you don’t ask you don’t get) also requested label customisation. So we added various ways to customize pie chart and donut chart labels.

You can find a demo of the Pie Chart here, and documentation here

Stacked Mountain charts now support PaletteProvider

While building the Oil & Gas dashboard demo, we discovered Stacked Mountain series did not support Paletteprovider – the API feature where you can colour segments of the chart programmatically. So we’ve added this.

You can find a demo of StackedMountain Paletting and code sample here.

Draw Series behind Axis

A customer requested (you don’t ask don’t get!) if SciChart.js can draw the series behind axis. Answer is, by setting this new flag, yes!

const { sciChartSurface, wasmContext } = await SciChartSurface.create(divElementId);
// Allows to use all existing space for drawing
sciChartSurface.drawSeriesBehindAxis = true;

You can find a demo of drawing series behind axis here, and documentation here.

Axis Background Color

The same customer asked if we could add a background colour to axis. You asked, we delivered!

// Set the axis background color
const yAxis = new NumericAxis(wasmContext, {
    axisTitleStyle: { color: "#368BC1" },
    axisTitle: "Y Axis",
    axisBorder: {
        borderLeft: 1,
        color: "#368BC1" // Blue color
    },
    backgroundColor: "#368BC111"
});

See the Axis Styling documentation here.

Allow placing Tooltip Outside Chart (SCJS-1093)

We’ve added the ability to place a tooltip (such as RolloverModifier) outside the chart area. To do this set the divElement ID on the RolloverModifier properties.

// Set the Div ID for rollover tooltips 
new RolloverModifier({ placementDivId: "my-tooltip-div-id" });

See the RolloverModifier Documentation here.

Get notification on legend row checkbox click

We’ve added two features to allow you to be notified when a legend item is clicked or when a series.isVisible property changes.

import { FastLineRenderableSeries } from "scichart/Charting/Visuals/RenderableSeries/FastLineRenderableSeries";

// Subscribe to onIsVisibleChanged on instantiation
const lineSeries = new FastLineRenderableSeries(wasmContext, {
    stroke: "Red",
    strokeThickness: 3,
    isVisible: true,
    onIsVisibleChanged: (sourceSeries, isVisible) =&gt; { 
        console.log(`Series ${sourceSeries.type} was set to isVisible=${isVisible}`);
    }
});
// Alternatiely you can subscribe to (or unsubscribe from) isVisibleChanged after instantiation
lineSeries.isVisibleChanged.subscribe((sourceSeries, isVisible) =&gt; {
    console.log(`Option 2: Series ${sourceSeries.type} was set to isVisible=${isVisible}`);
});

See the documentation for series visibility callbacks, and legend item checked-changed callback.

Added UseWasmFromCDN() Function to SciChartSurface

Packaging Webassembly (wasm) files with your application can be tricky. We’ve provided methods to do this in a number of apps (like React, Angular etc) but sometimes the simplest method is just load and download it from a CDN.

import {SciChartSurface} from "scichart/Charting/Visuals/SciChartSurface";

export async function initSciChart() {
    // Call this once before any SciChartSurface is shown.
    // This is equivalent to calling SciChartSurface.configure() with the CDN URL (JSDelivr)
    SciChartSurface.useWasmFromCDN();
}

Check out our new documentation page which covers the options: Deploying Wasm (WebAssembly) and Data Files with your app.

Added option to SciChartSurface.create() to pass in target HTML node instead of div ID

SciChartSurface.create() now accepts an HTMLDivElement or string div ID. So you can pass the HTML node instance directly to the chart instead of an ID. This allows SciChart.js to work in a shadow DOM and is a little syntactic sugar for your applications.

See the SciChartSurface.create() documentation here.

CategoryAxis allows rendering without data

In this release we’ve added properties to a CategoryAxis to let you set defaults so the chart can render empty before data has been added.

// Unix Epoch for March 1st 2022 &amp; March 2nd
const March1st2022 = 1646092800;
const March2nd2022 = 1646179200;
const OneDay = March2nd2022 - March1st2022;
// Creating a CategoryAxis as an XAxis on the bottom
sciChartSurface.xAxes.add(new CategoryAxis(wasmContext, {
	// set Defaults so that category axis can draw. Once you add series and data these will be overridden
	defaultXStart: March1st2022, 
	defaultXStep: OneDay,
	// Set other properties ... 
}));

See the CategoryAxis documentation page here.

NumericDateTimeAxis

Finally, we’ve added a new Axis Type to properly handle dates. The NumericAxis and CategoryAxis will handle dates by adding date formatting for labels. However this doesn’t address all the issues when handling dates instead of numbers on an axis.

So, to resolve this we created a dedicated NumericDateTimeAxis type.

Bug Fixes & Improvements

  • SCJS-924 – Pie surface should support padding and canvasBorder like main SciChartSurface
  • SCJS-1062 – Chart does not shrink vertically because of license message div
  • SCJS-1003 – CategoryAxis has errors when DataSeries not filled yet
  • SCJS-1114 – Cursor Modifier DPI issue where crosshair displays incorrectly when DPI is not 100%
  • SCJS-1124 – Fix scaling of Cursor lines without breaking rollover
  • SCJS-1097 – Fix Rollover on StackedRenderableSeries
  • SCJS-1027 – Add cleaning of root element after calling delete method
  • SCJS-1124 – Editable line annotation is not moveable
  • SCJS-1123 – RolloverModifier is broken on macOS Retina screen
  • SCJS-1095 – Various bugs with updating SVG CustomAnnotation
  • SCJS-1090 – RolloverModifier doesn’t work when a series changes axis
  • SCJS-1080 – Heatmap with cell values less than colormap.min render as empty cells
  • SCJS-548, SCJS-550 – Cannot align a VerticalLineAnnotation left or right

Pricing & Licensing

Existing customers with an active support & updates subscription will get the update for FREE.

For new customers or prospects, please contact our sales team and we will be happy to help!

How to get SciChart.js v2.2

Developers – Node/WebPack

npm install scichart

Don’t forget to see our Tutorials on setting up Npm projects with Webpack!

Developers – Browser Script

For developers using vanilla JavaScript (no Node Package Manager), you can load SciChart.js directly in browser. Add this script to your Html head and away you go.

// Add this script to head
<script src="https://cdn.jsdelivr.net/npm/scichart@2.1.2267/_wasm/scichart.browser.js" crossorigin="anonymous"></script>

// Now Configure SciChartSurface in code to load the wasm file from CDN
SciChart.SciChartSurface.useWasmFromCDN();

// Now create a SciChartSurface as you would normally!
const { sciChartSurface, wasmContext } = await SciChart.SciChartSurface.create("div-id");

Developers – Getting Started Guides

We’ve collected all the links to help you get started under scichart.com/downloads. Go there and take a look. If you have any questions just ask!

Best regards,

Andrew
[SciChart Team]

The post SciChart.js v2.2 Released! appeared first on Fast, Native Charts for WPF, iOS, Android, JavaScript .

SciChart WPF v6.6 Beta Released!

$
0
0

We are pleased to announce that the SciChart WPF v6.6 Beta build 26367 has now been released! This update includes a number of excellent new features, lots of stability fixes and performance & memory enhancements.

What’s New in SciChart WPF v6.6 Beta?

New! Oil & Gas Showcase Demo

New example “Charts for Gas & Oil Industry” has been added to our GitHub! The example showcases usage of SciChart APIs to build a view with chart types and layouts heavily used in Gas and Oil industry, like Trellis Plot, 3D Scatter/Projection charts, Heatmaps and various stratigraphic charts.

You can find full source code of the example on our GitHub.

New Gantt Chart Example

New example “Gantt Chart” has been added to SciChart Examples Demo! It demonstrates usage of new FastStripeRenderableSeries, Vertically Stacked Axes and powerful chart customization using WPF capabilities to create a Gantt Chart.

You can find a demo of Gantt Chart in SciChart WPF Examples Suite, full source code on our GitHub and documentation here.

New Horizontal Error Bars Chart Type

Introduced in SciChart v6.6, it allows creating charts with horizontal error bars and one-sided error bars.

FastErrorBarRenderableSeries can draw either horizontal or vertical errors depending on a value of the ErrorDirection property. Also, it is possible to create one-sided error bars by passing Double.NaN as error values to an HlcDataSeries:

var errorBarsSeries = new FastErrorBarsRenderableSeries
{
    Stroke = Colors.White,
    StrokeThickness = 1,

    // ErrorDirection specifies that ErrorBars should appear along YAxis, i.e. vertical ErrorBars
    ErrorDirection = ErrorDirection.YAxis,

    // DataPointWidthMode specifies that DataPointWidth is set in absolute units (pixels)
    DataPointWidthMode = DataPointWidthMode.Absolute,
    // Specifies that ErrorBars caps should be 15px wide
    DataPointWidth = 15,
};

// FastErrorBarsRenderableSeries expects data in the format X,Y plus High (error high), Low (error low)
var hlcDataSeries = new HlcDataSeries<double, double>();
hlcDataSeries.Append(0, 0, 0.5, -0.5);

// Specifies an one-sided error bar with High Error
hlcDataSeries.Append(1, 0, 0.5, double.NaN);

// Specifies an one-sided error bar with Low Error
hlcDataSeries.Append(2, 0, double.NaN, 1);

// Attach HlcDataSeries to FastErrorBarsRenderableSeries
errorBarsSeries.DataSeries = hlcDataSeries;

You can find a demo of ErrorBar Chart in SciChart WPF Examples Suite, full source code on our GitHub and documentation here.

Colors Smoothing for Non-Uniform Heatmap

Optional colors smoothing has been implemented for FastNonUniformHeatmapRenderableSeries.

It is controlled via the UseLinearTextureFiltering property on FastNonUniformHeatmapRenderableSeries:

<s:FastNonUniformHeatmapRenderableSeries UseLinearTextureFiltering="True"
                                         DrawTextInCell="True"
                                         Opacity="0.9">
    <s:FastNonUniformHeatmapRenderableSeries.ColorMap>
        <s:HeatmapColorPalette Minimum="0" Maximum="100">
            <GradientStop Color="Blue" Offset="0"/>
            <GradientStop Color="White" Offset="0.3"/>
            <GradientStop Color="Green" Offset="0.5"/>
            <GradientStop Color="Yellow" Offset="0.7"/>
            <GradientStop Color="Red" Offset="1"/>
        </s:HeatmapColorPalette>
    </s:FastNonUniformHeatmapRenderableSeries.ColorMap>
</s:FastNonUniformHeatmapRenderableSeries>

You can find a demo of Non-Uniform Heatmap Chart in SciChart WPF Examples Suite, full source code on our GitHub and documentation here.

Optional Candlesticks Rendering in Market Profile Chart

Rendering of Candlesticks has been made optional for FastHisotbarRenderableSeries.

This behavior is controlled via the ShowCandlesticks property on FastHisotbarRenderableSeries:

<s:FastHistoBarRenderableSeries
    ShowCandlesticks="False"
    DataSeries="{Binding DataSeries, Mode=TwoWay}"
    HistogramMode="{Binding HistogramBarMode, Mode=TwoWay}"
    HorizontalBarSpacing="{Binding HorizontalBarSpacing, Mode=TwoWay}"
    MaxHistoBarCandles="{Binding MaxHistoBarCandles, Mode=TwoWay}"
    PaletteProvider="{StaticResource VolumeLadderThresholdPaletteProvider}"
    TickSize="{Binding TickSize, Mode=TwoWay}"
    VerticalBarSpacing="{Binding VerticalBarSpacing, Mode=TwoWay}"
    StrokeUp="#7052CC54"
    StrokeDown="#D0E26565">
    
    <s:FastHistoBarRenderableSeries.FillUp>
        <SolidColorBrush Color="#7052CC54" />
    </s:FastHistoBarRenderableSeries.FillUp>
    
    <s:FastHistoBarRenderableSeries.FillDown>
        <SolidColorBrush Color="#D0E26565" />
    </s:FastHistoBarRenderableSeries.FillDown>

    <s:FastHistoBarRenderableSeries.AskBarStyle>
        <Style TargetType="s:HistogramBar">
            <Setter Property="Stroke" Value="{Binding AskStroke}" />
            <Setter Property="Fill" Value="{Binding AskFill}" />
        </Style>
    </s:FastHistoBarRenderableSeries.AskBarStyle>

    <s:FastHistoBarRenderableSeries.BidBarStyle>
        <Style TargetType="s:HistogramBar">
            <Setter Property="Stroke" Value="{Binding BidStroke}" />
            <Setter Property="Fill" Value="{Binding BidFill}" />
        </Style>
    </s:FastHistoBarRenderableSeries.BidBarStyle>

</s:FastHistoBarRenderableSeries>

You can find an example of Market Profile Charts with full source code on our GitHub and documentation here.

Specifying Bar Width in Pixels

ErrorBar Series and Column Series allows setting bar width in pixels. This can be done by setting the DataPointWidthMode property to “Absolute” and the DataPointWidth property to the desired width in pixels:

<s:FastErrorBarsRenderableSeries DataPointWidthMode="Absolute"
                                 DataPointWidth="15"
                                 StrokeThickness="1"
                                 Stroke="Blue"
                                 ErrorDirection="YAxis" />

<s:FastColumnRenderableSeries DataPointWidthMode="Absolute"
                              DataPointWidth="50"
                              StrokeThickness="1"
                              Stroke="#A99A8A">
    <s:FastColumnRenderableSeries.Fill>
        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
            <GradientStop Offset="0" Color="LightSteelBlue" />
            <GradientStop Offset="1.0" Color="SteelBlue" />
        </LinearGradientBrush>
    </s:FastColumnRenderableSeries.Fill>
</s:FastColumnRenderableSeries>

Optional Rendering of Zero Columns

Rendering of Columns with zero height has been made optional for Columns and StackedColumns series types. It is enabled by default. This behavior is controlled via the DrawZeroDataPoints property:

<s:FastColumnRenderableSeries DrawZeroDataPoints="False"
                              StrokeThickness="1"
                              Stroke="#A99A8A" />

Control Over Allocated Memory

By default, SciChart doesn’t deallocate internal arrays in DataSeries in order to avoid performance drawback in demanding cases. Now, it is possible to specify that all allocated memory must be released. This is done by passing appropriate flag value when calling the Clear() method on a DataSeries:

// Create a DataSeries, allocating memory for 1000 items
var dataSeries = new XyDataSeries<double>(1000);

// Work with the DataSeries
...

// Clear the DataSeries
// Specify that all allocated memory must be released 
dataSeries.Clear(true);

Disabling Compatibility Warnings

SciChart drawing engine writes warnings to the Output in case if any issues are detected. Now, it is possible to disable this via the VisualXcceleratorEngine.WriteWarningsToOutput static property:

// Disable writing compatibility warnings to the Output
VisualXcceleratorEngine.WriteWarningsToOutput = false;

Other Features & Improvements

  • Introduced a new RenderableSeries type called FastStripeRenderableSeries. It can be used to create Gantt Charts or Stripe Charts
  • FastErrorBarRenderableSeries can draw PointMarkers
  • Improved auto ranging of series with bars, such as Columns, Candlesticks, BoxPlot, ErrorBars, etc
  • Added support of Digital and Dashed lines with UniformDataSeries 
  • Added support of PixelPointMarker3D selection to VertexSelectionModifier3D
  • Exposed CullingPriority property on DefaultTickLabel. It is used to filter out some labels on an Axis to reduce their amount. This is useful when a custom labels culling algorithm is used

Breaking Changes

  • Method signature change: added a single parameter flag to IDataSeries.Clear() method that indicates whether to release internally allocated arrays. All implementers of IDataSeries interface and custom DataSeries have to consider this change in their implementations.
  • Method signature change: added a single parameter flag to IDataSeries.GetXRange() method that specifies whether requested range should be entire data range or positive part of it only. All implementers of IDataSeries interface and custom DataSeries have to consider this change in their implementations.
  • API change: IOhlcDataSeries does not extend IHlcDataSeries interface any longer. Also, OhlcPointSeriesTransformation does not extend HlcPointSeriesTransformation and has corresponding API changes.
  • Obsolete method: BaseRenderableSeries.GetDatapointWidth() method and all overloads made obsolete.
  • Obsolete property: UseUniformWidth property in BaseColumnRenderableSeries and BaseColumnRenderableSeriesViewModel marked obsolete. It hadn’t have any effect on Columns rendering, because bars always were drawn with uniform width.

Bug Fixes

  • SC-6566 Fixed System.AccessViolationException in FastLineRenderableSeries with dashed digital lines and NaNs
  • SC-6521 Fixed VerticalSliceModifier not updating tooltips when X1 property of VerticalLineAnnotation changes 
  • Fixed gradient fill for flipped Columns 
  • SC-5953 Fixed AccessViolation exception related to VRAM buffer sizes  
  • SC-6525 Implemented handling of VXEngine initialization exceptions for 2D, 3D charts 
  • SC-6339 Fixed intermittent crashed during finalization of SciChart3D objects
  • SC-5493 Fixed ImpulseSeries, ScatterSeries not appearing in Legend when added using MVVM API 
  • SC-6397 Fixed RolloverModifier not snapping to the nearest point with FastImpulseRenderableSeries 
  • SC-5101 Fixed transparency for Waterfall3D slices 
  • SC-6480 Fixed ZoomExtents for ErrorBars and Value Axis Types 
  • SC-6483 Fixed rendering of ErrorBars with NaN, PositiveInfinity, NegativeInfinity as error values 
  • SC-6570 Fixed rendering of lines caused by VisibleRange animation with ImpossibleMode
  • SC-6598 Fixed AnnotationCreationModifier with Polar Charts
  • SC-6599 Fixed VerticalSliceModifier loosing vertical lines under certain conditions when Annotations MVVM API is used
  • Fixed a memory leak in VerticalSliceModifier when vertical lines are removed programmatically
  • Implemented ‘Move’ event for SciChartMultiPane

We have also added a huge number of tests for covering new features, improvements and updated documentation.

Where to get it

SciChart WPF v6.6 Beta is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

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

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

The post SciChart WPF v6.6 Beta Released! appeared first on Fast, Native Charts for WPF, iOS, Android, JavaScript .


Changes to the SciChart Forum Permissions

$
0
0

We had a little bit of a spam problem recently on the SciChart Forums, so we’ve enabled a reputational based system for posting questions, answers and comments. This article talks about the changes and what permissions you will have and how you can earn better permissions through earning rep!

The Rep Scheme on SciChart Forums

Similar to StackOverflow, by asking questions which get voted up, answering questions which get voted up or accepted, or accepting answers, you can earn reputation. Below is a table of the actions you can take and what rep you can earn.

ActionRep Earned
One of your questions is voted up+5
One of your questions is voted down-2
One of your answers is voted up+10
One of your answers is voted down-2
One of your answers is accepted+15
You accept an answer+2
You vote an answer down-1
One of your questions is deleted as spam-100
Table of reputation earned on the SciChart Forums allowing you to post comments or answers without approval

What Reputation do you need to post / answer or comment?

Actions everyone can do with zero rep

Everyone starts off with zero rep but you can quickly earn rep allowing you more permissions. Here’s what you can do with zero rep:

ActionRep Required
Ask a question with moderator approval0
Edit your own question0
Comment on your own question0
Edit your own comments0
Delete your own comments0
Close your own questions0
Add an answer with moderator approval0
Edit your own answers0
Delete your own answers0
Edit own comments on answers0
Delete your own comments0

Note that if a question or answer is marked as spam you will quickly get -100 rep and it will be a while before you can post again.

Actions that require earning rep

Some actions will require you to earn rep before you can carry them out. These include:

ActionRep Required
Ask question without moderator approval10
Add answer without moderator approval10
Vote up questions / answers15
Vote down questions / answers125
Add comments to questions / answers50

When your questions (posts) or answers require moderation

As a completely new user to the SciChart forums, you will still be able to post questions & answers, but they will require moderation.

An email will be sent to our team who will approve a question or answer as soon as possible. If the question is well formatted and valuable they will also vote it up! This will start you on the journey to unlocking privileges by earning rep.

How to Earn Rep quickly to unlock privileges!

To earn rep quickly all you have to do is ask a few good questions, our moderators will vote up the questions giving you +5 rep per question asked.

If you answer a question and this is voted up and accepted as answer, you will earn +10 and +25 respectively.

Lastly, if you do have +15 or more rep you can vote up other people’s questions or answers in order to encourage the community.

Thanks and happy forum posting!

Best regards,
Andrew

The post Changes to the SciChart Forum Permissions appeared first on Fast, Native Charts for WPF, iOS, Android, JavaScript .

SciChart WPF v6.6 Released!

$
0
0

We’re delighted to announce SciChart WPF v6.6 has now completed it’s BETA testing phase and SciChart WPF v6.6 build 26505 has been released! This update includes a number of stability fixes and enhancements.

What’s New in SciChart WPF v6.6?

There is a number of new features, examples and improvements in SciChart WPF v6.6. We’ve compiled a list over at the page SciChart WPF v6.6 Beta Released. Take a look! There are over ten new features, three new examples and many improvements to our High Performance WPF Chart Library.

Disabling VisualXccelerator Option

Since SciChart v6.5, VisualXccelerator Engine, hardware-accelerated renderer, is used by SciChartSurface as default render. Normally SciChart uses autodetection to determine whether hardware acceleration is supported by a running machine, and falls back automatically to software rendering if it isn’t.

However, autodetection is not always possible. It fails sometimes when SciChart is run by virtual machines or other limited environments, that are often used as build servers.

For such cases, we added a static property VisualXcceleratorEngine.IsEnabledByDefault. Setting it to “False” allows to specify that hardware-accelerated rendering should not be used and to avoid all checks related to autodetection of rendering capabilities:

// Disables hardware-accelerated rendering and autodetection of rendering capabilities
VisualXcceleratorEngine.IsEnabledByDefault = false;

Other Improvements since Beta

  • Improved handling of inner VerticalLines collection by VerticalSliceModifier
  • Improved new DataPointWidthProvider API: reworked IUniformDataPointWidthProvider interface and introduced IBarRenderableSeries interface for those RenderableSeries types that use DataPointWidthProvider API
  • Improved memory management in SciChart WPF Examples Demo
  • Added option to install SciChart SDK and LicensingWizard for all Users on a PC

Bug Fixes since Beta

  • SC-6582 Fixed NullReferenceException when clicking on an AnnotationLabel, caused by multiple inner subscriptions to Mouse events in some cases
  • SC-6650 Fixed NullReferenceException in DataPointSelectionModifier when some points in DataSeries didn’t have PointMetadata
  • SC-5493 Fixed an issue with FastImpulseRenderableSeries, XyScatterRenderableSeries not appearing in Chart Legend when added using RenderableSeries MVVM API
  • SC-6479 Fixed ZoomExtents behavior with LogarithmicNumericAxis and HlcDataSeries
  • SC-6484 Fixed LogarithmicNumericAxis not handling values less or equal to zero in DataSeries properly
  • SC-6562 Fixed an issue when TimeSpanAxis caused intermittent lines to zero for Line chart with realtime updates
  • SC-6583 Fixed an issue when setting the default range as VisibleRange caused zooming to data extents
  • SC-6544 Added an assertion to warn users when XyDataSeries is created with empty data arrays
  • SC-6640 Fixed an issue when setting IsDigitalLine didn’t affect FastLineRenderableSeries if StrokeDashArray was set
  • SC-6574 Fixed ArgumentOutOfRangeException when removing a RenderableSeries through RenderableSeries MVVM API
  • SC-6631 Fixed an issue when FastLineRenderableSeries disappeared after it was made visible through Chart Legend
  • SC-6395 Fixed handling of Relpace and Move actions in RenderbaleSeries collection
  • SC-6635 Fixed a memory leak in SciChartSurface3D when NumericAxis3D used custom Styles for Major and Minor GridLines
  • SC-6527 Fixed an issue when hiding AxisLabels3D through the DrawAxisLabels property also hid AxisTitles
  • SC-6547 Fixed as issue when VertexSelectionModifier3D failed to select a newly added point to a XyzDataSeries3D
  • SC-6546 Fixed an issue when VertexSelectionModifier3D failed to select points if SciChart3DSurface was initialized without any data
  • SC-6604 Fixed issues when trying to export an example from the SciChart WPF Examples Demo in various usage scenarios

Breaking Changes

This is a complete list of breaking changes in SciChart v6.6.

  • Method signature change: added a single parameter flag to IDataSeries.Clear() method that indicates whether to release internally allocated arrays. All implementers of IDataSeries interface and custom DataSeries have to consider this change in their implementations.
  • Method signature change: added a single parameter flag to IDataSeries.GetXRange() method that specifies whether requested range should be entire data range or positive part of it only. All implementers of IDataSeries interface and custom DataSeries have to consider this change in their implementations.
  • API change: IOhlcDataSeries does not extend IHlcDataSeries interface any longer. Also, OhlcPointSeriesTransformation does not extend HlcPointSeriesTransformation and has corresponding API changes.
  • Obsolete method: BaseRenderableSeries.GetDatapointWidth() method and all overloads made obsolete.
  • Obsolete property: UseUniformWidth property in BaseColumnRenderableSeries and BaseColumnRenderableSeriesViewModel marked obsolete. It hadn’t have any effect on Columns rendering, because bars always were drawn with uniform width.

Breaking changes since SciChart v6.6 Beta release:

  • API change (since Beta): IUniformDataPointWidthProvider interface has been reworked to be more self-explanatory and useful for external users. Also, its implementers were modified correspondingly.
  • Obsolete method (since Beta): BaseRenderableSeries.GetDatapointWidth() method overload with four parameters has been made obsolete.
  • Obsolete method (since Beta): TimaSpenAxisBase.ToVisibleRange() method with two parameters has been made obsolete.

Where to get it

SciChart WPF v6.6 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

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

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

The post SciChart WPF v6.6 Released! appeared first on SciChart.

SciChart.js v2.0 Released!

$
0
0

We’re delighted to announce SciChart.js v2 has now completed it’s BETA testing phase and is now released!

What’s New in SciChart.js Version 2?

The amount of features & improvements in SciChart.js Version 2 is absolutely huge!

We’ve compiled a list over at the page What’s New in SciChart JS SDK v2. Take a look! There are seventeen new features and many improvements to our High Performance JavaScript Chart library.

Bugs fixed since the BETA

The team has squashed the following bugs reported since the BETA went live:

  • Builder API now supports stacked axes
  • Improved rollover modifier tooltip positioning
  • Legend now supports wrapping and is easier to customise
  • Improved handling of select and resize of overview annotation
  • Option to drag horizontal and vertical line annotations by their axis label
  • Fix Annotation dragging when using vertical charts / flipped coordinates
  • Fix Error if Logarithmic x-axis used with no data
  • Fix performance issue if tick settings would result in too many labels.
  • Fix RubberBandXyZoomModifier only honours EXyDirection.XyDirection
  • Fix AxisMarkerAnnotation shows wrong value for vertical chart
  • Fix Annotation Adorners not being cleared
  • Fix delete was unsubscribing from some events, causing JavaScript memory leaks

If you have any bugs to report, you can do so by emailing support@scichart.com directly. Please include steps to reproduce with all bugs and code samples or images/video if applicable.

Updated Features Page for SciChart.js version 2

With a new SciChart.js our Features page needs a new look! If you’d like to see the powerful features at-a-glance of our JavaScript 2D/3D chart library, head on over to scichart.com/javascript-chart-features.

This has links to the Online Demo and Getting Started pages so this is the first place to look if you want to learn more about SciChart.js

Pricing & Licensing

Existing customers with an active support & updates subscription will get the update for FREE.

For new customers or prospects, please contact our sales team and we will be happy to help!

How to get SciChart.js v2

Developers – Node/WebPack

You can now get SciChart.js v2 straight from npm.js.

npm install scichart

Don’t forget to see our Tutorials on setting up Npm projects with Webpack!

Developers – Browser Script

For developers using vanilla JavaScript (no Node Package Manager), you can load SciChart.js directly in browser. Add this script to your Html head and away you go.

// Add this script to head


// Now Configure SciChartSurface in code to load the wasm file from CDN
SciChart.SciChartSurface.configure({
    dataUrl: "https://cdn.jsdelivr.net/npm/scichart@2.0.2115/_wasm/scichart2d.data",
    wasmUrl: "https://cdn.jsdelivr.net/npm/scichart@2.0.2115/_wasm/scichart2d.wasm"
});
// Now create a SciChartSurface as you would normally!
const { sciChartSurface, wasmContext } = await SciChart.SciChartSurface.create("div-id");

Developers – Getting Started Guides

We’ve collected all the links to help you get started under scichart.com/downloads. Go there and take a look. If you have any questions just ask!

Best regards,

Andrew
[SciChart Team]

The post SciChart.js v2.0 Released! appeared first on SciChart.

SciChart WPF v6.5 Released!

$
0
0

We are pleased to announce that the SciChart WPF v6.5 build 13720 has now been released! This update includes a number of excellent new features, lots of stability fixes and performance & memory enhancements. This release is a drop-in replacement for 6.x and it is backward compatible for users of SciChart WPF version 6.

What’s New in SciChart v6.5?

Windows 11 Officially Supported

It’s always pleasant to bring SciChart to new platforms and runtimes. Even though in most cases SciChart WPF ‘Just worked’ on the latest version of Windows, we are delighted to announce SciChart WPF v6.5 now has official support of Windows 11. More to come later! 

SciChart WPF now officially supports Windows 11!
SciChart WPF now officially supports Windows 11!

Parallel Coordinate Plot Chart Type

A feature request from an enterprise customer – we’ve added a Parallel Coordinate Plot to SciChart WPF. This is a chart type used for visualizing and analysing multi-dimensional statistical datasets. For example, it can be used to compare several sets of observations (represented by lines) of a combination of different factors (each represented by an axis) to find and visualize relationships between them.

In SciChart, the Parallel Coordinate Plot is represented by a new Control type called SciChartParallelCoordinateSurface. It is capable of rendering thousands of series or records, connected either by straight lines or splines. It is possible to have multiple Y-Axes representing different categories, each with a corresponding scale. Series may be selected. Individual styling of Y-Axes is also supported. Zooming, panning and Series selection is provided by corresponding ChartModifiers.

WPF Parallel Coordinate Plot
SciChart WPF now supports a Parallel Coordinate Plot through the SciChartParallelCoordinateSurface type

New Uniform Data Series type

Another feature hotly requested on our Feature Request System. We’ve created a brand-new Data Series type called the UniformXyDataSeries. This uses Y-values only and assumes a fixed-stepping for X-Values. This saves 50% of the memory required in the most performance-intensive and demanding applications where data is sampled from data acquisition hardware, sensors or logic analysers.

The UniformXyDataSeries has already been road-tested in an application we built for a customer, which had to display up to Tens of Billion Datapoints of acquired binary and analogue data from a Logic Analyzer.

The UniformXyDataSeries is performant into the tens of billions of data-points for static datasets. With our templated DataSeries types it supports float, double, byte, short, int or long types, with a fixed stepping computed by sample number and step size.

Note: This series type has not yet been optimised for real-time but we plan to do that soon! When we have, we will be updating you with how to use it.

Digital (Logic) Analyzer 64-Billion Point Performance Demo

To show you the speed & power of the UniformXyDataSeries we’ve created a new demo – the Digital Analyzer Performance Demo.

Modelled after a generic “Logic Analyzer” application it shows how SciChart is capable of displaying tens, hundreds of millions of even tens billions of datapoints of digital data acquired from Data Acquisition hardware, sensors, telemetry or logic analysers for this special case of time series with evenly spaced X-values.

Run the example by running the SciChart WPF Examples Suite -> And searching for ‘Digital Analyzer’

Here’s a video below of me running the Digital Analyzer Demo with 64 Billion Datapoints of digital data, all on a mid-level workstation with 64GB RAM and 6-core processor.

In fact, we’ve tested this up to 100 Billion data-points on powerful workstations (requires 128GB RAM).

SciChart is very capable for this kind of extreme big-data visualization in logic or hardware analysers, digital analysers or data acquisition hardware. No tricks, no if’s, no buts. We’ve worked hard to ensure every step of our graphics pipeline is fully optimised, using low-level gaming technology to achieve our incredible fast performance.

Shared Render Timer

Some applications such as those with tens or hundreds of charts, or applications with SciChart WPF hosted inside WinForms or Win32 suffered from performance problems due to scheduling of our rendering on WPF’s UI Thread.

To solve this problem we’ve introduced a new SharedRenderTimer that allows to sync rendering between multiple SciChartSurfaces. It can be enabled or disabled by setting static RenderSurfaceBase.UseThreadedRenderTimer property anywhere in your code.

It is demonstrated in the “50-Channel EEG” example in our Demo App, which contains a ListBox with 50 SciChartSurfaces that are updated simultaneously.

Use of the SharedRenderTimer can improve performance significantly in apps with tens or hundreds of WPF charts by ensuring one shared redraw timer on a background thread

Use of the SharedRenderTimer can improve performance significantly in some apps but is not recommended for default operation. If in doubt, contact our helpful, knowledgeable tech support team who will advise you how best to use SciChart in your application.

Important Fixes & Improvements in v6.5

  • SC-5964 Fixed an AccessViolationException crash when Axis Font is changed
  • SC-5864 Fixed incorrect drawing of PointMarkers with selected PointMarkers
  • SC-6139 Fixed some crashes in 2D examples in Demo App
  • SC-6039 Improved export of SciChartSurface so it works consistently in all cases
  • SC-5995 Improved VxRenderSettings – handling of memory buffers allocation, especially low-memory scenarios such as some on-board GPUs or Intel GPUs
  • SC-5762 Fixed saving and loading of TradingAnnotations
  • SC-6125 Implemented null-reference checks through unmanaged classes. These sometimes got Disposed but still called resulting in AccessViolationExceptions randomly in code. This fix will greatly improve stability of SciChart WPF
  • SC-6220 Fixed MarketProfile mode in FastHistobarRenderableSeries – correct Ask and Bid volumes are passed to HistobarPaletteProvider now
  • SC-5970 Improved OscilloscopeDemo: Rollover and Tooltip modifiers cannot be disabled
  • SC-5966 Fixed issue when changing MinorsPerMajor property on a TimeSpanAxis had no effect
  • SC-5959 Improved XPS export – axes do not contain bitmaps in exported image
  • SC-5963 Fixed FastBandRenderableSeries Fill not working with HighSpeedRenderer depending on the floating values
  • SC-5799 Fixed AnnotationCreationModifier, which didn’t preserve position of first point if chart is zoomed/panned during Annotation creation
  • SC-5980 Fixed DataPointSelectionModifier.AllowMultiselection property. Now it allows selection of data points from different RenderableSeries simultaneously
  • SC-6093 Allowed having Triggers in DataTemplate for SciChartGroup Panes
  • SC-5450 Fixed an issue with small-value OHLC bars not visible with VXEngine
  • Fixed setting of the Image inside RenderSurface to avoid misalignment of gridlines and ticks by setting proper Stretch mode
  • Fixed case when SciChart didn’t fallback to software renderering on some Virtual Machines that resulted in a crash
  • Added ability for SciChart to work on Virtual Machines with hardware acceleration turned off
  • SC-5925 Added UseInterpolation option to Rollover menu in Toolbar
  • SC-5970 Fixed OscilloscopeDemo: Rollover and Tooltip modifiers cannot be disabled
  • SC-5924 Fixed Toolbar Menu placement in Demo App
  • SC-6030 Improved “Drag Area to Zoom” example for consistent look & feel with other examples
  • SC-6044 Fixed Watermark Annotation in “Annotations are Easy!” example. It was barely visible
  • SC-6189 Used SharedRenderShedulerTimer in “50-Channels EEG” example
  • SC-6114 Updated some examples in ExamplesDemo to showcase UniformXyDataSeries

We have also added a huge number of tests for covering new features, improvements and updated documentation.

We have re-tested performance across a variety of chart types & features. SciChart WPF is still to our knowledge, the World’s Fastest WPF chart component, allowing for an order of magnitude or more performance gain against even the strongest competitor, when tested in a number of challenging and varied real-world use-cases.

With SciChart WPF Chart Library, you can be confident you are buying the best WPF chart on the market. Not only best performing in a variety of real-world use cases, but also the best API to work with, certainly the friendliest and most helpful staff when you need help 🙂

Where to get SciChart WPF v6.5?

SciChart WPF v6.5 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from Nuget
  • By cloning and compiling the examples source code on Github.
  • By cloning or downloading the SciChart source code on Github (source code customers only)

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

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

Best regards,
Andrew
[SciChart Team]

The post SciChart WPF v6.5 Released! appeared first on SciChart.

SciChart 2021 – What you might have missed & What’s Coming Soon in 2022

$
0
0

In many ways 2021 has been an incredible year of growth for SciChart, and I wanted to share with you some of our progress in 2021 to ensure you didn’t miss anything, what’s available to you as a customer of SciChart and what is coming soon in 2022. 

Many customers are delighted with our software, and we consistently receive a 5* rating on external review sites. With this year’s improvements we will help you create innovative, cutting-edge charting applications with incredible performance, features and stability, helping you win business & outpace your competitors. 

Releases and Updates in 2021

We’ve made lots of releases and updates in the past year in our WPF Charts, iOS/Android/macOS charts as well as JavaScript Charts. Take a look at the release notes recap below to see what’s new! If you are not up to date, then do take the opportunity to update. There have been loads of improvements.

WPF Chart Releases

In 2021 we had several releases for SciChart WPF Chart Library– our flagship product still used by thousands of developers worldwide. SciChart WPF enjoyed a strong year with the following milestones:

SciChart WPF 6.3 released in Jan 2021. This included

  • .NET 5 support
  • Heatmap Peak Detection
  • Audio Analyzer example
  • Label Provider example
  • Performance improvements
  • various bugs fixed and improvements

In July we released SciChart WPF v6.4, which included:

  • 3D Lighting modes
  • multiple axis markers for Series Value Modifier
  • off-screen export examples
  • plus multiple important bug fixes and improvements
Above: The Parallel Coordinate Plot type was released as part of SciChart WPF v6.5

SciChart WPF v6.5 was also released at the end of October 2021, another big upgrade, including:

  • Official Windows 11 Support
  • .NET Framework v6 Support
  • Parallel Coordinate Plot chart type
  • Uniform Data Series Chart Type – enabling ultra big-data applications where only Y-values are needed (X-values are evenly spaced)
  • Digital Logic Analyser example with up to 64 Billion Datapoints rendered.
  • Shared Render Timer for better chart synchronisation and performance in multi-chart applications.
  • Many other important bug fixes and improvements.
WPF Consultancy Projects

The WPF team also carried out several consultancy projects throughout the year. One was for a Formula One team, and we’ve blogged about SciChart’s use in F1 here and also here: Max, Data and Marginal Gains – Why You Can Only Optimise What You Can See

Above: SciChart is used by multiple F1 teams. We blogged about the importance of high performance, configurable charts in F1 and similar industries.

Another was an Electronic Test Measurement manufacturer, where our team built an entire app from scratch to display billions of data-points acquired from digital logic analyser. Case study coming on that soon, but in the meantime check out the new example we have in our WPF Chart Examples Suite – the Digital Analyzer.

WPF Performance

Several strides were made in performance this year as well. The introduction of UniformDataSeries allowed us to render massive datasets – up to 64 Billion Datapoints was demonstrated in this video.

We demonstrated up to 64 Billion data-points in a WPF Chart using our new UniformDataSeries, demonstrated in the Logic Analyser example.

Our team also re-evaluated performance vs. our strongest competitor, and blogged about performance test results. SciChart WPF is still by far the world’s fastest WPF chart control, in a wide variety of real-world test cases. Beware of claims to the contrary!

Above: Performance Test Results of SciChart WPF vs. our strongest competitor. In a wide range of real-world test cases, SciChart was found to be the fastest chart, in some cases several thousand percent faster! Read more at SciChart – The Fastest WPF Charts. Period. 2021 Test Results Update
WPF Process Improvements

Finally the WPF team also pioneered work in the analysis of tech-support requests, finding out what our most common problems were and adding automated testing to improve the quality around those areas.

Reducing our tech-support load by pre-emptively finding and fixing common issues and upgrading our build & deployment pipelines will give our team better efficiency in 2022 and beyond.

iOS/Android/macOS Chart Releases

Our native mobile charts had several releases this year, including:

SciChart IOS/Android v4.2, released in January which featured:

  • SeriesValueModifier
  • XCode 12 support
  • macOS Big Sur support
  • plus several bug fixes and improvements

The mobile team blogged about XCode 12 & Big Sur support here.

In July 2021, SciChart iOS/Android v4.3 was released. This release featured:

  • Major improvements to label formatting for financial/trading charts
  • Stacked series improvements
  • ability to modify an existing theme
  • and improvements to the Swift API for our iOS/macOS chart controls.
Objective-C frameworks in Swift's world (a.k.a. interoperability to Swift)
The mobile team improved our Swift API for iOS/macOS applications in July, enabling a much improved dev process for Swift app developers. Read more at the following blog post.

The mobile team blogged about the challenge/solution of the Swift API here. Something we discovered when creating the SciTrader App. The result of this work was a complete overhaul to our Objective-C / Swift interop, massively improving the usability of SciChart’s iOS Chart Library in Swift (macOS/iPad/iOS) applications.

The SciTrader App & SDK

In November 2021 the mobile team released the SciTrader App, a showcase application which you can download from the Apple App Store / Google Play Store.

The SciTrader App was released in Nov 2021: a native iOS/Android trading app. SDK / Financial Chart Library coming soon! Find out more at https://scitrader.io

In the future we plan to make this available as a financial chart library on both native iOS/Android and JavaScript.

You can learn more about SciTrader at https://scitrader.io or read our blog post on the SciTrader App & SDK

Kotlin Examples for SciChart.Android

Finally, in December we’ve now published the Android chart examples as both Kotlin and Java. These are viewable by cloning or downloading SciChart.Android.Examples on Github and will be on the website shortly.

JavaScript Chart Releases

2021 was a big year for SciChart.js – our newest product – a high performance JavaScript/TypeScript WebGL chart library.

In Feb 2021 we released SciChart JavaScript v1.2, which included

  • Horizontal/VerticalLineAnnotation types
  • Editable / draggable annotations
  • Digital (step) Line, Band and Mountain chart types
  • styling of axis and chart borders
  • plus several bug fixes and improvements.

In March we released SciChart.js v1.3. This release featured:

  • Spline line series
  • Spline Mountain series
  • Spline band chart type
  • JavaScript Chart animations
  • Dashed line styling
  • plus several bug fixes and minor improvements.

We also updated the SciChart.js demo site at https://demo.scichart.com with a new look and style.

Two minor patches to SciChart.js: v1.3.1514 and SciChart.js v1.4 were released in April & May. These included:

  • critical bug fixes including memory leaks
  • new examples
  • new documentation
  • loading SciChart.js & Wasm from CDN for vanilla javascript support
  • pinch zoom and touchscreen support
  • as well as several minor improvements.
SciChart.js had several releases in 2021, including version 2 which added significant functionality to our JavaScript Chart Library

Finally in October we released SciChart.js version 2. We had been working on this all year and this major release included:

  • Series Selection
  • Datapoint Selection
  • Logarithmic Axis
  • Central and Inner Axis
  • Vertically Stacked Axis
  • Axis Label Customisation
  • The Builder API
  • JSON Serialization
  • Pointmetadata API
  • Filters and Data Transforms API
  • Style Animations and Data Animations
  • Transparent Backgrounds
  • Image Backgrounds
  • SciChartOverview control
  • Retina display Support
  • plus Miscellaneous improvements and all new documentation and examples.

Support Stats

That’s not all! A large part of what we do is supporting our customers. SciChart is rated 5* for technical support, and we respond to literally thousands of requests to ensure that you are able to build your projects without interruption.

SciChart handles thousands of support requests, forum questions and sales enquiries per year!

  • During 2021, our team efficiently managed 1,789 sales requests (8.1 per working day) 
  • 1,048 support tickets (4.7 per working day), each with tens of emails back & forth with tens of thousands of emails read & sent. 
  • As well as hundreds of forum questions
  • Hundreds of bugs fixed in SciChart WPF, iOS/Android and JavaScript
  • Hundreds of nightly build releases made across NuGet, Cocoapod/SwiftPM, Maven and npm. 

We’ve also made multiple improvements to our processes, testing and support including:

  • Updating and re-writing deployment scripts
  • Creating 5 Test Suites with hundreds of test-cases for automated and manual testing.
  • Developed metrics for quality assessment.
  • Analysed support load & frequently asked questions on our support desk.
  • Introduced testing plans & summary reports for every release.
  • Automated many manual test cases to reduce testing burden

All of this will improve quality of our work and efficiency so that we can continue to serve our customer base in 2022 and beyond.

Usage & Growth Stats

So it’s great that we’ve made so many releases, and answered so many support & sales requests, but who is using our software?

SciChart usage continues to grow: we saw a +25% Year on Year increase in licensing sales in 2021. This compounded on a +20% YoY increase in 2020. The number of users continues to grow and more and more impressive projects use SciChart.

SciChart is used by thousands of customers around the world, in cutting-edge research, technology, engineering & financial applications
  • This year SciChart became the defacto standard for F1, being used by the majority of top F1 teams.
  • Our software has powered research & development worldwide, including research into Covid-19 ventilators, cancer research.
  • SciChart is now used by over 150 educational institutions & universities, including MIT, Stanford, Imperial College.
  • Our trading application SciTrader is already at almost 3,000 monthly active users, despite launching only a couple of months ago.

We’ve made thousands of impossible projects possible with our software and continue to see amazing applications & services built with our chart libraries around the world.

What’s Coming in 2022

So what’s coming soon? We’re continuing to innovate and build out our cross-platform charting libraries. What you can look forward to in 2022 includes:

  1. We continue to develop the C++ core of our charts, enabling more features to be shared across platforms. For example, we have written the text label rendering entirely in C++ which will improve performance in our chart libraries across platforms and offer a unified experience for text rendering.
  2. Work like this can eventually can result in a C++ only version of SciChart but also enables WinUI, a new XAML technology which is built on top of C++ and wrapped by .NET. We are seeking companies who want to accelerate our roadmap for example into Linux or WinUI for native apps. If either project is valuable to you, get in contact and to discuss feature-sponsorship (roadmap acceleration): where we can focus resources and build dedicated features or platforms for you in exchange for a commitment fee.
  3. We continue to maintain our WPF charts, adding new features and continuously improving for our userbase.
  4. We are developing a financial charting library for adding SciChart into trading applications. The SciTrader SDK will be announced & released at some point in early 2022 and will support native iOS, Android as well as browser (JavaScript) apps.
  5. Our JavaScript charts will be developed to add more chart types, more demos and examples to showcase this powerful, high performance JavaScript chart library.
  6. We have a performance release for our JavaScript chart library due in early 2022 which will include more features from our Visual Xccelerator(TM) engine to allow tens of millions of data-points in realtime, faster loading & drawing.
  7. We are still taking feature requests, and working as consultants to integrate, customise our charts and build applications in scientific & financial fields. If expert consultancy is of interest to you, then contact us.
  8. Not only that but expect changes to our website, marketing & content as we continue to focus on growth in 2022 and beyond.

Finally, thank you to all our customers who have supported us this year, reviewed us, encouraged us and of course purchased from us. We hope to make you very pleased about your purchasing decisions in the coming 12 months!

Best regards,
Andrew

The post SciChart 2021 – What you might have missed & What’s Coming Soon in 2022 appeared first on SciChart.

SciChart WPF v3,4,5 Licensing & Activation End of Life

$
0
0

At SciChart, we are committed to continuous innovation to ensure your success in WPF charting projects. We are thankful for your continued business and want to share an upcoming change to our licensing system.

We are announcing the End-of-Life (EOL) for Legacy licensing wizard, and the license activation system for WPF versions 3, 4 and 5.

What this means is:

  • If you are developing an application with SciChart WPF v3, v4 or v5, after the EOL date developers on your team will not be able to activate or deactivate developer licenses. 

However,

  • Existing activated developer licences will continue to work.
  • Also, existing deployed applications will continue to work.
  • And, this will not affect applications using SciChart WPF version 6.

The reasons for this EOL notice are as follows:

In older versions of SciChart WPF, we used a third party licensing component which has now gone ex-support. The legacy licensing wizard (Below) which you may be familiar with contacted this licensing service in the cloud to activate or deactivate developer licenses.

How to Activate SciChart using the SciChart Licensing Wizard

Because the third party component has gone ex-support, soon there will be no way to contact the service to perform activation/deactivation. Licensing uses heavy encryption so it’s not possible for us to emulate or work around this service.

Our Solution

We built & deployed a completely in-house licensing & activation system which was released with SciChart WPF version 6 in January 2020. This has been operating for two years and most of our customers now use the new system.

However there is still a small subset of customers using legacy versions of SciChart WPF.

If you are actively developing applications with version 3, 4 and 5 of SciChart WPF we would like you to get in touch to discuss how to migrate your applications to SciChart WPF version 6, which we are able to assist you with.

FAQs

Q: Who is affected by this announcement?

Customers of SciChart WPF actively developing using version 3, 4 or 5 and want to activate or deactivate developer licenses for that version.

Q: What happens after the EOL date?

After the EOL date we can no longer ensure that activation, deactivation will work for SciChart WPF v3, 4 and 5. Deployed applications and existing activations will continue to work.

We will continue to run legacy licensing services for these versions as long as reasonably possible.

Q: When is the EOL date?

We’ve set a provisional ex-support date of 31st March 2022, however we are flexible to our customers needs.

Q: Will my Deployed Applications continue to work?

Yes. Applications that you have deployed with SciChart WPF v3, v4 & 5 will continue to work as these are not dependent on licensing services but have an offline runtime key.

What alternatives are available to me?

Recommended: Upgrade to SciChart WPF v6

SciChart WPF v6 contains a new, completely in-house licensing mechanism which we have built and released in January 2020. This is now the supported method for licensing & activation going forward. There is also a new Cross-Platform Licensing Wizard which works with SciChart WPF v6 and above.

We recommend to all users of SciChart WPF v3, v4 and v5 with actively developed projects where you need to activate/deactivate developer licenses should upgrade to SciChart WPF v6.

What Support is Available to me?

If you are developing an application with SciChart WPF v3, 4 or 5 we are able to offer the following support to ensure continuity of service.

1. Migration Assistance to SciChart WPF v6

Our staff are able to assist on migrating large or complex projects to SciChart WPF v6 on a time & materials basis. You also may be eligible for renewal/upgrade discounts to migrate to the latest version.

Please Contact us to find out more.

2. Extended Support for SciChart WPF v3, v4, v5

If you have an actively developed application and it is difficult to upgrade to SciChart WPF v6 in a timely manner, we may be able to assist by offering extended support for the v3, v4, v5 versions for an extended support fee.

Our preferred route would be to assist you with upgrading to SciChart WPF v6 but we are able to offer this option where necessary.

Contact us to discuss

We will be sending out email newsletters to affected customers soon and sending out reminders if you activate an older version of SciChart.

If you are in the affected group, please contact us to discuss the options above. We have solutions that can help you migrate to SciChart WPF v6 and will be delighted to help you in any way to continue developing applications with SciChart.

Best regards,
Andrew
[SciChart Team]

The post SciChart WPF v3,4,5 Licensing & Activation End of Life appeared first on SciChart.

SciChart is the fastest JS Chart library available – and why that matters in today’s world

$
0
0

It’s been just over a year since we released SciChart.js: High Performance Realtime Charts for JavaScript apps. From the start, our goal has been to create the fastest possible JavaScript Charts, but also produce visually appealing, productive, highly configurable and flexible / powerful TypeScript / JavaScript charting controls, capable of being used in demanding business apps.

Our first version of SciChart.js was able to draw a million data points in a browser, and we have only worked to improve our performance since then.

Version 2.1 of SciChart.js (in BETA now) can draw over 10 million data points and has even been tested up to 100 million data points. That’s more than enough to show the entire history of Bitcoin in a 1-minute chart, or visualise data in the most demanding applications.

Why would you need this speed in a Js Chart?

Currently, most JavaScript applications use charting in the sense that they may have a few hundred to a few thousand data-points on an infographic, chart, or graph.

Most existing Fast JavaScript Chart Libraries can only render a few thousand points before slowdown. However, trends in Js application development are changing.

Most JavaScript Chart Libraries can render a few thousand points before slowing down. Big-Data is a trend across industries and the amount of data is only getting bigger. If the speed of your JS Chart Library is not an issue now, it will be soon.

There are a lot of legacy native-code applications in Science, Engineering and Finance which need to render millions of data-points from big-data stores, sensors (telemetry, IoT). Even hardware devices like electronic test equipment, process monitoring equipment can have integrated displays which include real-time charts to visualise data. Many legacy applications are moving toward npm / Typescript / React as a UI tech stack.

Big-Data is a trend across industries and the amount of data to visualise is only getting bigger. If the performance of your JS Chart Library is not an issue now, it will be soon. With new tools like SciChart allowing you to visualise bigger datasets, it will become a competitive advantage to be able to visualise and gain valuable insights from the rich data your organisation has collected.

Before SciChart, there was no viable solution for big-data, dynamic or real-time charts in JavaScript applications, however we’ve built an award-winning, cutting-edge solution based on gaming technology, with WebGL and WebAssembly to provide high performance JavaScript Charts.

SciChart solves tomorrow’s problems today: visualising large datasets, or dynamic datasets in data-intensive applications.

Charting Performance Test Cases

We’ve built a demanding test-suite which compares the performance across a number of chart components. Included in the test are the following JavaScript Chart libraries:

  • Plotly.js – an SVG and WebGL powered JS chart
  • HighCharts – SVG powered JS charts
  • HighCharts Boost – a higher performance plugin for HighCharts
  • Chart.js, an open source library based on HTML5 Canvas
  • SciChart.js, our WebGL & WebAssembly powered chart library

Note: Other chart libraries were tested internally but not included in the results below, as we are on focussing on the most popular libraries.

We put them head to head in a demanding performance test that stress your CPU & GPU to the max to find out which is the fastest.

These are the test cases:

Demanding, Varied test cases stress different types of drawing or rendering. In our JavaScript Chart Library Performance Comparison we test:

  • Plotting JS Line charts with hundreds, or thousands of line series
  • Plotting JS Scatter charts with real-time updates
  • XY Lines (scatter line). A challenging test case as it can’t be downsampled easily.
  • Column Charts. Columns require extra geometry and are difficult to optimise
  • Mountain or Area Charts. Also require extra geometry
  • Candlestick Charts. An important test case for stock chart applications which demand good rendering performance.
  • Realtime JS Chart Cases. One with scrolling line series (for realtime monitoring applications) and another with new data added to the chart at high speed.

The Performance Comparison Test Results

You can find the test results of our JavaScript Chart Performance Comparison below.

Test Results Table

Below, you can find the performance test results in table form. The test case & parameters are on the left, and the results are in FPS (Frames per second). Drawing speed is measured in FPS (Frames per second – Higher is Better), meaning, the average number of redraws per second during the test. An FPS result above 30 is smooth to the eye.

Heatmap colours highlight the winners & losers. On the right, find the Speed Increase of SciChart.js compared to the second-fastest JS Chart Library as a percentage.

SciChart Vs. Other Competitors Spreadsheet
Performance Comparison between SciChart.js, HighCharts (with and without Boost), Plotly.js and Chart.js. Tests carried out with SciChart.js v2.1 BETA

We’ll draw a conclusion below, but some immediate takeaways from the table above:

SciChart.js is incredibly fast!

Of the test results which passed, the average speed increase was 1,975% (~20x faster). The maximum speed increase was 11,126% (111x faster than the second-fastest competing JavaScript Chart). In some cases, SciChart.js was able to draw hundreds, or even thousands of times more data.

More on the performance test results below…

Test Results in Chart Form

Let’s see the test results in chart form. Click on a chart to view full size!

The bar charts above make it easier to see how SciChart.js (green) is performing vs. the competition. Even with 1 to 10 million data-points, SciChart.js is drawing charts at high refresh rates, meaning that SciChart is able to plot a chart in record time.

Some competing JS charts drop off very quickly. Take a look at the Candlestick chart test for example. All competitors are struggling with only 1,000 candles. At 10,000, they can barely redraw. Only SciChart.js can handle millions of candlesticks – enough to plot the entire history of Bitcoin in a 1-minute timeframe.

Performance Comparison Conclusions

So, some pretty incredible performance results above for a variety of popular JavaScript chart libraries! What conclusions can we draw from these?

  • According to the Performance Comparison Results, most JavaScript Chart libraries are unsuitable for datasets over a few thousand points, or dynamic updates on the chart.
  • Most perform poorly once the amount of data reaches only a few thousand points.
  • All struggled to draw more than a thousand candlesticks in stock chart configuration.
  • Many failed / crashed when larger datasets were given to the chart. For example, HighCharts.js simply crashed (even with boost module) when attempting to draw 500 line series with 500 points.

How does SciChart.js Compare?

  • In demanding and varied test cases, SciChart.js beat all competing JavaScript Chart libraries in performance tests carried out.
  • For several test cases, competing charts failed to draw (crashed or hanged the webpage).
  • For the above test cases, SciChart.js was on average 1,975% faster (~20x faster) than the 2nd fastest competitor, and a maximum of 11,126% faster (111x faster!)
  • For Candlestick Charts, SciChart.js can draw 1,000x more candlesticks than competing libraries, allowing you to show large histories such as years of 1-minute stock, forex or cryptocurrency data in JavaScript.
  • For Column Charts, SciChart.js was also able to show 100x more data than competing charts
  • SciChart.js was able to draw thousands of line series, opening up advanced statistical analysis or comparisons which are not possible with other JS Chart libraries.

If you are building an application with demanding data-visualisation requirements, or porting from Windows (native code) to JavaScript, then SciChart is the only viable solution today for big-data applications, complex and data-intensive apps. If chart flexibility, rendering performance and reliability are mission critical to the success of the app, and your business, then we hope we’ve demonstrated why we remain the expert’s choice.

Find out More at the link below.

SciChart JavaScript Charts

JavaScript Charts by SciChart

JavaScript Charts by SciChart are extremely fast and allow robust, high performance data-visualisation across a number of chart types & scenarios. Learn more about the features and start a trial today by clicking the button below.

 
 

The post SciChart is the fastest JS Chart library available – and why that matters in today’s world appeared first on SciChart.


SciChart WPF v6.5.1 Released!

$
0
0

We are pleased to announce that the SciChart WPF v6.5.1 build 26063 has now been released! This update includes a number of stability fixes and performance & memory enhancements.

This release is a drop-in replacement for 6.x and it is backward compatible for users of SciChart WPF version 6.

What’s New in SciChart v6.5.1?

Major Improvements in v6.5.1

  • Improved performance of UniformXyDataSeries in FIFO mode and with realtime updates
  • Improved reliability of UniformXyDataSeries
  • IMPORTANT: VisualXccelerator is set to be the default renderer. You no longer have to enable VisualXccelerator engine in your charts, and there will no longer be a double render on startup when switching from software to hardware 
  • Improved reliability of C++ interop reducing AccessViolationException crashes
  • Improved code quality with a Static Analysis tool

Important Changes

  • Removed properties that were marked as “Obsolete” and caused a runtime error when used
  • Removed types that were marked “Obsolete” and caused a runtime error when used:
    • ModifierTouchManipulationArgs
    • MountainRenderableSeries3DViewModel
    • MountainRenderableSeries3D
    • MountainSceneEntity
  • Removed VisualXcceleratorEngineHelper class from SciChart.Examples.ExternalDependencies. It was used to set VisualXccelerator by default in the Examples Demo

Bug Fixes

  • SC-6121 Fixed issue with non-consistent dashed lines when software renderers are used
  • SC-6203 Fixed crash with Tooltips in MouseHover mode after they ‘hang’ on a SciChartSurface
  • SC-6245 Fixed AnnotationsCollection not handling the “Reset” action properly
  • SC-6246 Fixed DataPointSelection not working with Touch screens
  • SC-6258 Fixed a bug when a removed axis still appeared on a chart
  • SC-6266 Fixed exception thrown in HeatmapColorPalette
  • SC-6279 Fixed ArithmeticOverflowException in UniformXyDataSeries when VisibleRange grew too big
  • SC-6297 Fixed issue with access to Heatmap.ColorMap from different threads
  • SC-6309 Fix for chart crashes after checking or unchecking “AntiAliasing (4x MSAA)” mode
  • SC-6316 SharedRenderTimer crashes with TaskCancellationException
  • SC-6320 Tooltip mode for “Stacked Mountain Chart” shows data on empty area
  • SC-6326 XyzDataSeries3D doesn’t update after Clear() call
  • SC-6327 SciChart3D still renders if DataSeries is set to Null
  • SC-6335 Fixed checking of blacklisted graphic adapters for GPU Capability Test
  • SC-6306 Fixed software renderers to draw Columns at ZeroLineY (zero height columns)
  • Fixed the issue with HighQualityRenderer skipping over points
  • Fixed an issue with GPU Capability Tester when building it in Unicode Mode

Documentation Updates

Improvements in Examples Demo

  • Improved the “Digital Analyzer Performance Demo” example
  • Added a checkbox to examples with Heatmaps to demonstrate LinearTextureFiltering
  • SC-6454 Fixed issue with Checkbox grouping in the Demo App

We have also added a number of tests for covering abovementioned fixes and changes.

Where to get SciChart WPF v6.5.1?

SciChart’s WPF chart library, WPF v6.5.1 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from Nuget
  • By cloning and compiling the examples source code on Github.
  • By cloning or downloading the SciChart source code on Github (source code customers only)

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

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

Best regards,
Yuriy
[SciChart Team]

The post SciChart WPF v6.5.1 Released! appeared first on SciChart.

SciChart.js v2.1 Released!

$
0
0

We are delighted to announce that the SciChart.js v2.1 build 2267 has now been released!

This backward-compatible update includes a number of improvements, fixes and some massive performance improvements for big-data & realtime rendering.

This release is a drop-in replacement and it is backward compatible for users of SciChart.js version 2.

What’s New in SciChart.js v2.1?

Major Performance Improvements in v2.1

We’ve used our expertise high performance computing in other platforms of SciChart to make massive improvements to chart rendering, updating and startup speed in SciChart.js v2.1.

Here is a quick summary of the improvements.

DataSeries Creation & Updating Speed

For big-data applications or dynamically updating charts, a large bottleneck was simply the time to create and update data.

By looking at memory optimisation and taking advantage of low-level code optimisations in WebAssembly we’ve improved the following DataSeries operations significantly, which results in much faster, more responsive charts. Especially noticeable in dynamic or real-time contexts.

DataSeries OperationBeforeAfterImprovement
Create a DataSeries with 1Million Datapoints35ms10ms3.5x faster!
Get XRange for DataSeries with unsorted data
(required for auto ranging)
550ms3.4ms161x faster!
Optimising DataSeries.clear() & append() with 1M datapoints
(required for dynamically updating charts)
386ms4.68ms82x faster!
Optimising DataSeries.getNativeIndices() with 1M datapoints
(required for candlestick charts)
367ms22ms16x faster!
DataSeries.insertRange() with 1k datapoints
(required for prepending or inserting data)
132ms0.69ms191x faster!
DataSeries.removeRange() with 1k datapoints
(required for removing a block of data)
730ms0.33ms2,212x faster!

Data interactions with SciChart.js are now significantly faster, whether you are manipulating data frequently in a Js chart, dynamically updating charts or simply visualising big datasets, you will notice large performance improvements when using SciChart.js v2.1 over previous versions.

Introducing Smart Data-point Resampling

Our Windows, mobile (iOS/Android) versions of SciChart have included data-point resampling for a long time. Datapoint resampling ensures the minimum viable data-set is displayed on the screen. Resampling is intended to be visually lossless, and automatic. It occurs for RenderableSeries before the series is rendered, if required.

This code, being part of our Visual Xccelerator Engine in C++ has now been included in SciChart.js WebAssembly module and brings massive performance improvements to SciChart.js for big-data scenarios.

Compared to version 2.0, SciChart.js v2.1 has significant performance improvements for chart rendering:

SciChart.js v2.1 Speed Improvements (percent) vs. SciChart.js v2.0. JavaScript charting performance up to 4,000% faster is seen with our chart library
Above: Overall performance (chart rendering) improvements in SciChart.js v2.1 compared to SciChart.js v2.0. Performance improvements of up to 4,000% were observed in our JavaScript Charting library!

Other Performance Improvements

  • Improved raw drawing speed of our underlying graphics engine by over 100%
  • Improved performance of charts with RolloverModifier tooltips
  • Added Async Label Creation option with global application or per-chart caching (see documentation)
  • Optimised data transfers from JavaScript to WebAssembly

Performance Results

We’ve compared a number of JavaScript Chart Libraries such as Plotly.js, HighCharts, Chart.js vs. SciChart.js to evaluate chart drawing performance and published the results in a second article: SciChart is the Fastest JS Chart Library – and why that matters in today’s world.

SciChart.js is the Fastest JS Chart Library available

Here’s why that matters in today’s world

Most JavaScript Chart Libraries can render a few thousand points before slowing down. Big-Data is a trend across industries and the amount of data is only getting bigger. If the speed of your JS Chart Library is not an issue now, it will be soon.

Read more

We’ve also created a demo showcasing SciChart.js ability to load millions of candlesticks, allowing you to visualise years of 1-minute bars in stock charts or cryptocurrency trading apps. Read more at the article below.

How SciChart.js transforms trading performance

JavaScript Candlestick Charts: Plotting 1-year of 1-minute BTCUSD bars in JS – How Scichart.js optimises trading performance

Read More

Improvements to SciChart.js and Documentation

  • Auto-detecting data distribution flags in DataSeries (flags dataSeries.isSorted, dataSeries.containsNaN). Specifying these flags gives better performance in big-data scenarios.
  • Added labels support outside of a Pie Chart
  • Added Documentation of how to use SciChart.js in vannilla HTML/Js (without npm) using our Browser Bundle served by CDN
  • Added Documentation for Performance Tips & Tricks
  • Added Documentation for new Data-point Resampling features
  • Added Documentation & Examples for new Generic Animations API
  • Added Generic Animations example to the Demo app
  • Optimizations for Annotation notifyPropertyChange method not to be called if the property has not changed
  • Better error message if wasm cannot be loaded, or the wrong version loaded
  • Add a property to configure stacked axis length (SCJS-954)
  • Allow passing div element reference into SciChartSurface.create to make SciChart.js possible to use in shadow DOM (SCJS-974)
  • Display performance warnings in dev environment (SCJS-984)
  • Improve guard checks for data series creation (SCHS-981)
  • Snap RolloverModifier vertical line to data points (SCHS-623)
  • Optimize getXRange() algorithm for unsorted data (SCJS-888)
  • Optimize filling wasm memory from js (SCJS-911)
  • Add explanation error message for trial expired on old version (SCJS-886)
  • Add AxisRenderer.axisSize property which allows setting axis label width
  • Add includeAxis property to MouseWheelZoomModifier
  • Add AxisRenderer.axisThickness (SCJS-953)
  • Prevent CursorModifier axis labels to be cut out of the chart (SCJS-980)
  • Improve chart performance when using RolloverModifier and CursorModifier

Bug Fixes in SciChart.js v2.1

  • Fix an error for LineAnnotation with a hidden label (SCJS-850)
  • Fix several SciChartOverview-related bugs: handling flipped coordinates properly (SCJS-839), setting initial overview range and area correctly (SCJS-851), a scrolling issue (SCJS-839), updating SciChartOverview dimmed annotations (SCJS-885), setting overview visible range to main chart visible range (SCJS-943), visible range limit (SCJS-941), LogarithmicAxis (SCJS-942),
  • Several SciChartOverview improvements: allow passing surface and axis options on overview create (SCJS-873), support for CategoryAxis
  • Fix a resize surface issue for annotation adorner layer (SCJS-844)
  • Added FloatArray64 array support for DataSeries
  • Fix MouseWheelZoomModifier zooming in issue for LogarithmicAxis (SCJS-881)
  • Fix axis labels population for flipped coordinates (SCJS-884)
  • Fix RolloverModifier tooltip to use the series stroke as the default color (SCJS-776)
  • display the trial watermark correctly for small charts (SCJS-892)
  • Fix clearing the legend with sciChartSurface.chartModifiers.clear() (SCJS-916)
  • Fix a caching problem for SmartLabelProvider (SCJS-920)
  • Fix mouse wheel and zoom extends on inner axis with applyToChart property set to False
  • Fix annotation borders calculation to take into account xCoordShift (SCJS-959). This bug resulted in an incorrect hit-test for annotations.
  • Fix drawing render context annotations below series (SCJS-919)
  • Fix rendering category axis without data (SCJS-946)
  • Fix RolloverModifier tooltips bug (SCJS-975)
  • Fix CursorModifier to apply axisLabelFill and axisLabelStroke correctly (SCJS-979)
  • Fix an infinite loop problem for multiple charts (SCJS-988)
  • Fix RolloverModifier error when it was used without a data series
  • Fix runtime license not applied if it has started looking for license wizard (SCJS-991)
  • draw gradient correctly when canvas resize (SCJS-826)
  • Handle visibleRangeLimit properly when scrolling (SCJS-962)

Pricing & Licensing

Existing customers with an active support & updates subscription will get the update for FREE.

For new customers or prospects, please contact our sales team and we will be happy to help!

How to get SciChart.js v2.1

Developers – Node/WebPack

npm install scichart

Don’t forget to see our Tutorials on setting up Npm projects with Webpack!

Developers – Browser Script

For developers using vanilla JavaScript (no Node Package Manager), you can load SciChart.js directly in browser. Add this script to your Html head and away you go.

// Add this script to head


// Now Configure SciChartSurface in code to load the wasm file from CDN
SciChart.SciChartSurface.configure({
    dataUrl: "https://cdn.jsdelivr.net/npm/scichart@2.1.2267/_wasm/scichart2d.data",
    wasmUrl: "https://cdn.jsdelivr.net/npm/scichart@2.1.2267/_wasm/scichart2d.wasm"
});
// Now create a SciChartSurface as you would normally!
const { sciChartSurface, wasmContext } = await SciChart.SciChartSurface.create("div-id");

Developers – Getting Started Guides

We’ve collected all the links to help you get started under scichart.com/downloads. Go there and take a look. If you have any questions just ask!

Best regards,

Andrew
[SciChart Team]

The post SciChart.js v2.1 Released! appeared first on SciChart.

SciChart iOS, macOS, and Android SDK v4.4 is Released!

$
0
0

We are pleased to announce that the SciChart iOS, macOS, and Android v4.4, have been released!  It includes a lot of improvements and bug fixes. It is recommended for all users of SciChart to update to the latest version! Please see more information below.

What is new in SciChart iOS/macOS/Android v4.4

In this minor release our team brings to you a bunch of cool stuff, including the following major improvements:

  • Heavily requested examples written in Kotlin (plus Kotlin DSL extensions as a bonus)
  • iOS simulator finally supports Metal via corresponding render surface
  • Brand new examples showcasing built-in Transformations API:
    • Animate appending point in “Animating line chart” – iOS & macOS and Android examples
    • Animate data updates in “Animating Stacked Column Chart” – iOS & macOS and Android examples

SciChart Android examples brought to Kotlin

Kotlin language becomes more and more popular and developers start using it much more in their projects nowadays. Not surprising that we were receiving lots of requests about samples written using exactly in Kotlin and not Java. Hence we spent some time and not only implemented examples but also added some Kotlin DSL extensions for the SciChart library, and now our simple LineChart Example looks like below:

override fun initExample(surface: SciChartSurface) {
    val fourierSeries = DataManager.getInstance().getFourierSeries(1.0, 0.1, 5000)

    surface.suspendUpdates {
        xAxes { numericAxis { visibleRange = DoubleRange(1.1, 2.7) } }
        yAxes { numericAxis { growBy = DoubleRange(0.1, 0.1) } }
        renderableSeries {
            fastLineRenderableSeries {
                dataSeries = XyDataSeries().apply {
                    append(fourierSeries.xValues, fourierSeries.yValues)
                }
                strokeStyle = SolidPenStyle(0xFF279B27)

                sweepAnimation { interpolator = DecelerateInterpolator() }
            }
        }
        chartModifiers { defaultModifiers() }
    }
}
full example available on our GitHub

And that’s it. With such a concise Kotlin snippet, you get your line chart with pinch, zoom and pan gestures out of the box.

All of our examples are available in both – Java and Kotlin languages. Language can be switched by a simple tap in the application toolbar (try it out in our SciChart Android examples app), like so:

Moreover, all of the Kotlin DSLs are available in our public examples repository, so you can use those in your applications if you want.

Metal is finally available in the iOS simulator

This feature was requested very often. Some wanted just be able to test and debug applications directly on the host macOS machine, while others want to be able to automate screenshots while publishing to the AppStore. It doesn’t really matter what’s the real use-case, having Metal in a simulator is useful on its own, so we finally added Metal support for SciChart iOS which is running in a Simulator. It’s much more performant in comparison to OpenGL in simulator. It is super smooth for both – 2D and 3D charts – so we are glad it’s finally here:

Custom animation examples

Some of our customers would like to implement append data with animation instead of point just appearing on screen. Another would like to smoothly update existing data on a screen. Sometimes animations are very useful while visualising data. We do also receive requests about tricky custom animations. There were custom animations documentation available, but our underlying Transformations API is fairly vague and complex. So we added the following examples into our demo apps, to bring more light onto just mentioned APIs.

Animating Line Chart – iOS & macOS and Android examples

Animate data updates in “Animating Stacked Column Chart” – iOS & macOS and Android examples

Source code for our examples are as usual available in our GitHub repositories:

Documentation about how to get the above result using Transformations APIs are available via the following links:

Other Improvements and bug fixes

SciChart Android:

  • fixed PieChart gesture modifiers doesn’t work
  • SC_DROID-810 – fixed incorrect HitTest results with FIFO series
  • SC_DROID-813 – fixed creation pens with opacity
  • SC_DROID-814 – fixed resizing of underlying primary target to correctly handle resizing of chart;
  • SC_DROID-815 – fixed NullPointerException in SeriesSelectionModifier
  • SC_DROID-817 – fixed regression: TooltipModifier3D stopped working
  • fixed incorrect handling of opacity by canvas RenderSurface when rendering lines
  • improvements to underlying data distribution providers and resampling algorithms
  • deprecated ISmartList, because IDataDistributionProvider‘s flags should be outside it
  • added ported CalendarUnit based label formatter for DateAxis
  • refactored PinchZoomModifier, RubberBandXyZoomModifier and ZoomPanModifier to allow overriding for what exact X/YAxes the modifier should be applied
  • fixed ZoomPanModifier which shouldn’t pan chart outside modifier surface
  • refactored NiceDoubleScale calculations to delay overflow of double which results Infinity results; removed generic param from delta calculator because it isn’t actually used
  • [examples] moved accessibility example to sandbox repository
  • [examples] replaced show source code with redirection to GitHub for SciChar Android Examples
  • [examples] deprecated export project feature

SciChart iOS / macOS:

  • fixed UIColor category methods are no longer conflicts with Dynotrace library
  • added some missing strong attributes
  • fixed missing SCILineArrowAnnotation in examples
  • ported CalendarUnit based label formatter for SCIDateAxis
  • SCIOS-918 – embedded dSYM and BCSymbolMap into *.xcframework
  • improved some method signatures translate better to Swift
  • exposed visible range animation related classes
  • added missing setVisibleRangeAnimator
  • refactored SCIPinchZoomModifier, SCIRubberBandXyZoomModifier and SCIZoomPanModifier to allow overriding for what exact X/YAxes the modifier should be applied
  • fixed drawNaNAs property that didn’t worked for SCIFastMountainRenderableSeries

SciChart Xamarin.iOS and Xamarin.Android:

  • added missing NullAllowed attributes and bindings
  • added missing constructor SCIDefaultSeriesValueMarker
  • update bindings for SCISeriesValueModifier and SCIThemeManager
  • lots of small underlying improvements for bindings

Where to get SciChart iOS / macOS / Android v4.4?

SciChart iOS & macOS

  • iOS & macOS framework is available through both CocoaPods and Swift Package Manager
  • SciChart iOS & macOS examples are available in AppStore
  • SciChart macOS examples also available as .dmg installer
  • SciChart iOS & macOS examples sources are available on GitHub
  • SciChart iOS & macOS source code is available on GitHub (source code customers only)

SciChart Android

  • Android packages is available via maven feed
  • SciChart Android examples are available in Google Play Store
  • SciChart Android examples sources are available on GitHub
  • SciChart Android source code is available on GitHub (source code customers only)

SciChart Xamarin.iOS and Xamarin.Android

  • Xamarin.iOS package is available via NuGet
  • Xamarin.Android package is available via NuGet
  • Xamarin.Android 3D package is available via NuGet
  • Xamarin examples sources are available on GitHub
  • Xamarin source code is available on GitHub (source code customers only)

You can always get our SDKs for iOS, macOS and Android from our downloads pages:

Please Note: you will need to download the Cross-Platform Licensing Wizard separately, required to activate and license SciChart Mobile SDK v3 and higher.

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

If your support has expired, Please contact sales asap to get a custom quote.

Best regards,
Nazar
[SciChart Team]

The post SciChart iOS, macOS, and Android SDK v4.4 is Released! appeared first on SciChart.

SciChart.js v2.2 Released!

$
0
0

We are pleased to announce that the SciChart.js v2.2 build 2378 has now been released!

This backward-compatible update includes a number of new features, improvements and bug-fixes.

This release is a drop-in replacement and it is backward compatible for users of SciChart.js version 2.

What’s New in SciChart.js v2.2?

New! Oil & Gas Showcase Demo

We created an awesome Oil & Gas dashboard demo. Designed to show the capabilities of SciChart.js for oil & gas explorers, we created a JavaScript dashboard which includes vertical charts with multiple visualisation types, trellis charts, 3d charts used in the energy sector.

.stk-5247e12 .stk-block-card__image{height:500px !important}

DataVisualization in the Oil & Gas Industry using SciChart

We’ve created some demos with source-code showing how you can configure SciChart for Oil & Gas applications below. These have been created in both JavaScript for browser apps and WPF / C# for Windows desktop apps.

.stk-e70e629 .stk-button{background:#00d084 !important}Read more

You can find a blog post of the Oil & Gas demo with source-code in both WPF and JavaScript above.

New JavaScript Impulse (Stem or Lollipop) Chart Type

We call this an Impulse Chart, but another name is Stem Chart or Lollipop Chart. This chart type is a thin stem with a pointmarker at the top. Common when visualising trends, or in pharmaceutical, scientific and electronics industries.

Lollipop Charts in JavaScript. Also known as Impulse or Stem charts

You can find a demo of the Lollipop Chart here, and documentation here.

New JavaScript Error Bars Chart Type

Error Bars were a hot feature-request and are now in the SciChart.js library v2.2 and above. Error values can be set per-datapoint and can be styled and sized according to available space or by exact pixel amounts. Error bars can be set horizontally, vertically or both and work on linear and logarithmic axis.

Error Bars in JavaScript. SciChart.js supports vertical & horizontal error bars with varying error per datapoint

You can find a demo of the Error Bars Chart here, and documentation here.

Pie Charts have Animated Updates

One of our customers pointed out that Pie Charts could not be updated. So we added updates, but we also added animated updates!

To enable animated updates, set the SciChartPieSurface.animate property = true and then update the PieSegment.value properties.

SciChart.js now supports animated pie charts with dynamic updates

You can find a demo of the Pie Chart here, and documentation here

Pie Charts have customisable Labels (SCJS-1110)

The self same customer (if you don’t ask you don’t get) also requested label customisation. So we added various ways to customize pie chart and donut chart labels.

You can find a demo of the Pie Chart here, and documentation here

Stacked Mountain charts now support PaletteProvider

While building the Oil & Gas dashboard demo, we discovered Stacked Mountain series did not support Paletteprovider – the API feature where you can colour segments of the chart programmatically. So we’ve added this.

You can find a demo of StackedMountain Paletting and code sample here.

Draw Series behind Axis

A customer requested (you don’t ask don’t get!) if SciChart.js can draw the series behind axis. Answer is, by setting this new flag, yes!

const { sciChartSurface, wasmContext } = await SciChartSurface.create(divElementId);
// Allows to use all existing space for drawing
sciChartSurface.drawSeriesBehindAxis = true;

You can find a demo of drawing series behind axis here, and documentation here.

Axis Background Color

The same customer asked if we could add a background colour to axis. You asked, we delivered!

// Set the axis background color
const yAxis = new NumericAxis(wasmContext, {
    axisTitleStyle: { color: "#368BC1" },
    axisTitle: "Y Axis",
    axisBorder: {
        borderLeft: 1,
        color: "#368BC1" // Blue color
    },
    backgroundColor: "#368BC111"
});

See the Axis Styling documentation here.

Allow placing Tooltip Outside Chart (SCJS-1093)

We’ve added the ability to place a tooltip (such as RolloverModifier) outside the chart area. To do this set the divElement ID on the RolloverModifier properties.

// Set the Div ID for rollover tooltips 
new RolloverModifier({ placementDivId: "my-tooltip-div-id" });

See the RolloverModifier Documentation here.

Get notification on legend row checkbox click

We’ve added two features to allow you to be notified when a legend item is clicked or when a series.isVisible property changes.

import { FastLineRenderableSeries } from "scichart/Charting/Visuals/RenderableSeries/FastLineRenderableSeries";

// Subscribe to onIsVisibleChanged on instantiation
const lineSeries = new FastLineRenderableSeries(wasmContext, {
    stroke: "Red",
    strokeThickness: 3,
    isVisible: true,
    onIsVisibleChanged: (sourceSeries, isVisible) => { 
        console.log(`Series ${sourceSeries.type} was set to isVisible=${isVisible}`);
    }
});
// Alternatiely you can subscribe to (or unsubscribe from) isVisibleChanged after instantiation
lineSeries.isVisibleChanged.subscribe((sourceSeries, isVisible) => {
    console.log(`Option 2: Series ${sourceSeries.type} was set to isVisible=${isVisible}`);
});

See the documentation for series visibility callbacks, and legend item checked-changed callback.

Added UseWasmFromCDN() Function to SciChartSurface

Packaging Webassembly (wasm) files with your application can be tricky. We’ve provided methods to do this in a number of apps (like React, Angular etc) but sometimes the simplest method is just load and download it from a CDN.

import {SciChartSurface} from "scichart/Charting/Visuals/SciChartSurface";

export async function initSciChart() {
    // Call this once before any SciChartSurface is shown.
    // This is equivalent to calling SciChartSurface.configure() with the CDN URL (JSDelivr)
    SciChartSurface.useWasmFromCDN();
}

Check out our new documentation page which covers the options: Deploying Wasm (WebAssembly) and Data Files with your app.

Added option to SciChartSurface.create() to pass in target HTML node instead of div ID

SciChartSurface.create() now accepts an HTMLDivElement or string div ID. So you can pass the HTML node instance directly to the chart instead of an ID. This allows SciChart.js to work in a shadow DOM and is a little syntactic sugar for your applications.

See the SciChartSurface.create() documentation here.

CategoryAxis allows rendering without data

In this release we’ve added properties to a CategoryAxis to let you set defaults so the chart can render empty before data has been added.

// Unix Epoch for March 1st 2022 & March 2nd
const March1st2022 = 1646092800;
const March2nd2022 = 1646179200;
const OneDay = March2nd2022 - March1st2022;
// Creating a CategoryAxis as an XAxis on the bottom
sciChartSurface.xAxes.add(new CategoryAxis(wasmContext, {
// set Defaults so that category axis can draw. Once you add series and data these will be overridden
defaultXStart: March1st2022, 
defaultXStep: OneDay,
// Set other properties ... 
}));

See the CategoryAxis documentation page here.

NumericDateTimeAxis

Finally, we’ve added a new Axis Type to properly handle dates. The NumericAxis and CategoryAxis will handle dates by adding date formatting for labels. However this doesn’t address all the issues when handling dates instead of numbers on an axis.

So, to resolve this we created a dedicated NumericDateTimeAxis type.

Bug Fixes & Improvements

  • SCJS-924 – Pie surface should support padding and canvasBorder like main SciChartSurface
  • SCJS-1062 – Chart does not shrink vertically because of license message div
  • SCJS-1003 – CategoryAxis has errors when DataSeries not filled yet
  • SCJS-1114 – Cursor Modifier DPI issue where crosshair displays incorrectly when DPI is not 100%
  • SCJS-1124 – Fix scaling of Cursor lines without breaking rollover
  • SCJS-1097 – Fix Rollover on StackedRenderableSeries
  • SCJS-1027 – Add cleaning of root element after calling delete method
  • SCJS-1124 – Editable line annotation is not moveable
  • SCJS-1123 – RolloverModifier is broken on macOS Retina screen
  • SCJS-1095 – Various bugs with updating SVG CustomAnnotation
  • SCJS-1090 – RolloverModifier doesn’t work when a series changes axis
  • SCJS-1080 – Heatmap with cell values less than colormap.min render as empty cells
  • SCJS-548, SCJS-550 – Cannot align a VerticalLineAnnotation left or right

Pricing & Licensing

Existing customers with an active support & updates subscription will get the update for FREE.

For new customers or prospects, please contact our sales team and we will be happy to help!

How to get SciChart.js v2.2

Developers – Node/WebPack

npm install scichart

Don’t forget to see our Tutorials on setting up Npm projects with Webpack!

Developers – Browser Script

For developers using vanilla JavaScript (no Node Package Manager), you can load SciChart.js directly in browser. Add this script to your Html head and away you go.

// Add this script to head


// Now Configure SciChartSurface in code to load the wasm file from CDN
SciChart.SciChartSurface.useWasmFromCDN();

// Now create a SciChartSurface as you would normally!
const { sciChartSurface, wasmContext } = await SciChart.SciChartSurface.create("div-id");

Developers – Getting Started Guides

We’ve collected all the links to help you get started under scichart.com/downloads. Go there and take a look. If you have any questions just ask!

Best regards,

Andrew
[SciChart Team]

The post SciChart.js v2.2 Released! appeared first on SciChart.

SciChart WPF v6.6 Beta Released!

$
0
0

We are pleased to announce that the SciChart WPF v6.6 Beta build 26367 has now been released! This update includes a number of excellent new features, lots of stability fixes and performance & memory enhancements.

What’s New in SciChart WPF v6.6 Beta?

New! Oil & Gas Showcase Demo

New example “Charts for Gas & Oil Industry” has been added to our GitHub! The example showcases usage of SciChart APIs to build a view with chart types and layouts heavily used in Gas and Oil industry, like Trellis Plot, 3D Scatter/Projection charts, Heatmaps and various stratigraphic charts.

You can find full source code of the example on our GitHub.

New Gantt Chart Example

New example “Gantt Chart” has been added to SciChart Examples Demo! It demonstrates usage of new FastStripeRenderableSeries, Vertically Stacked Axes and powerful chart customization using WPF capabilities to create a Gantt Chart.

You can find a demo of Gantt Chart in SciChart WPF Examples Suite, full source code on our GitHub and documentation here.

New Horizontal Error Bars Chart Type

Introduced in SciChart v6.6, it allows creating charts with horizontal error bars and one-sided error bars.

FastErrorBarRenderableSeries can draw either horizontal or vertical errors depending on a value of the ErrorDirection property. Also, it is possible to create one-sided error bars by passing Double.NaN as error values to an HlcDataSeries:

var errorBarsSeries = new FastErrorBarsRenderableSeries
{
    Stroke = Colors.White,
    StrokeThickness = 1,

    // ErrorDirection specifies that ErrorBars should appear along YAxis, i.e. vertical ErrorBars
    ErrorDirection = ErrorDirection.YAxis,

    // DataPointWidthMode specifies that DataPointWidth is set in absolute units (pixels)
    DataPointWidthMode = DataPointWidthMode.Absolute,
    // Specifies that ErrorBars caps should be 15px wide
    DataPointWidth = 15,
};

// FastErrorBarsRenderableSeries expects data in the format X,Y plus High (error high), Low (error low)
var hlcDataSeries = new HlcDataSeries<double, double>();
hlcDataSeries.Append(0, 0, 0.5, -0.5);

// Specifies an one-sided error bar with High Error
hlcDataSeries.Append(1, 0, 0.5, double.NaN);

// Specifies an one-sided error bar with Low Error
hlcDataSeries.Append(2, 0, double.NaN, 1);

// Attach HlcDataSeries to FastErrorBarsRenderableSeries
errorBarsSeries.DataSeries = hlcDataSeries;

You can find a demo of ErrorBar Chart in SciChart WPF Examples Suite, full source code on our GitHub and documentation here.

Colors Smoothing for Non-Uniform Heatmap

Optional colors smoothing has been implemented for FastNonUniformHeatmapRenderableSeries.

It is controlled via the UseLinearTextureFiltering property on FastNonUniformHeatmapRenderableSeries:

<s:FastNonUniformHeatmapRenderableSeries UseLinearTextureFiltering="True"
                                         DrawTextInCell="True"
                                         Opacity="0.9">
    <s:FastNonUniformHeatmapRenderableSeries.ColorMap>
        <s:HeatmapColorPalette Minimum="0" Maximum="100">
            <GradientStop Color="Blue" Offset="0"/>
            <GradientStop Color="White" Offset="0.3"/>
            <GradientStop Color="Green" Offset="0.5"/>
            <GradientStop Color="Yellow" Offset="0.7"/>
            <GradientStop Color="Red" Offset="1"/>
        </s:HeatmapColorPalette>
    </s:FastNonUniformHeatmapRenderableSeries.ColorMap>
</s:FastNonUniformHeatmapRenderableSeries>

You can find a demo of Non-Uniform Heatmap Chart in SciChart WPF Examples Suite, full source code on our GitHub and documentation here.

Optional Candlesticks Rendering in Market Profile Chart

Rendering of Candlesticks has been made optional for FastHisotbarRenderableSeries.

This behavior is controlled via the ShowCandlesticks property on FastHisotbarRenderableSeries:

<s:FastHistoBarRenderableSeries
    ShowCandlesticks="False"
    DataSeries="{Binding DataSeries, Mode=TwoWay}"
    HistogramMode="{Binding HistogramBarMode, Mode=TwoWay}"
    HorizontalBarSpacing="{Binding HorizontalBarSpacing, Mode=TwoWay}"
    MaxHistoBarCandles="{Binding MaxHistoBarCandles, Mode=TwoWay}"
    PaletteProvider="{StaticResource VolumeLadderThresholdPaletteProvider}"
    TickSize="{Binding TickSize, Mode=TwoWay}"
    VerticalBarSpacing="{Binding VerticalBarSpacing, Mode=TwoWay}"
    StrokeUp="#7052CC54"
    StrokeDown="#D0E26565">
    
    <s:FastHistoBarRenderableSeries.FillUp>
        <SolidColorBrush Color="#7052CC54" />
    </s:FastHistoBarRenderableSeries.FillUp>
    
    <s:FastHistoBarRenderableSeries.FillDown>
        <SolidColorBrush Color="#D0E26565" />
    </s:FastHistoBarRenderableSeries.FillDown>

    <s:FastHistoBarRenderableSeries.AskBarStyle>
        <Style TargetType="s:HistogramBar">
            <Setter Property="Stroke" Value="{Binding AskStroke}" />
            <Setter Property="Fill" Value="{Binding AskFill}" />
        </Style>
    </s:FastHistoBarRenderableSeries.AskBarStyle>

    <s:FastHistoBarRenderableSeries.BidBarStyle>
        <Style TargetType="s:HistogramBar">
            <Setter Property="Stroke" Value="{Binding BidStroke}" />
            <Setter Property="Fill" Value="{Binding BidFill}" />
        </Style>
    </s:FastHistoBarRenderableSeries.BidBarStyle>

</s:FastHistoBarRenderableSeries>

You can find an example of Market Profile Charts with full source code on our GitHub and documentation here.

Specifying Bar Width in Pixels

ErrorBar Series and Column Series allows setting bar width in pixels. This can be done by setting the DataPointWidthMode property to “Absolute” and the DataPointWidth property to the desired width in pixels:

<s:FastErrorBarsRenderableSeries DataPointWidthMode="Absolute"
                                 DataPointWidth="15"
                                 StrokeThickness="1"
                                 Stroke="Blue"
                                 ErrorDirection="YAxis" />

<s:FastColumnRenderableSeries DataPointWidthMode="Absolute"
                              DataPointWidth="50"
                              StrokeThickness="1"
                              Stroke="#A99A8A">
    <s:FastColumnRenderableSeries.Fill>
        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
            <GradientStop Offset="0" Color="LightSteelBlue" />
            <GradientStop Offset="1.0" Color="SteelBlue" />
        </LinearGradientBrush>
    </s:FastColumnRenderableSeries.Fill>
</s:FastColumnRenderableSeries>

Optional Rendering of Zero Columns

Rendering of Columns with zero height has been made optional for Columns and StackedColumns series types. It is enabled by default. This behavior is controlled via the DrawZeroDataPoints property:

<s:FastColumnRenderableSeries DrawZeroDataPoints="False"
                              StrokeThickness="1"
                              Stroke="#A99A8A" />

Control Over Allocated Memory

By default, SciChart doesn’t deallocate internal arrays in DataSeries in order to avoid performance drawback in demanding cases. Now, it is possible to specify that all allocated memory must be released. This is done by passing appropriate flag value when calling the Clear() method on a DataSeries:

// Create a DataSeries, allocating memory for 1000 items
var dataSeries = new XyDataSeries<double>(1000);

// Work with the DataSeries
...

// Clear the DataSeries
// Specify that all allocated memory must be released 
dataSeries.Clear(true);

Disabling Compatibility Warnings

SciChart drawing engine writes warnings to the Output in case if any issues are detected. Now, it is possible to disable this via the VisualXcceleratorEngine.WriteWarningsToOutput static property:

// Disable writing compatibility warnings to the Output
VisualXcceleratorEngine.WriteWarningsToOutput = false;

Other Features & Improvements

  • Introduced a new RenderableSeries type called FastStripeRenderableSeries. It can be used to create Gantt Charts or Stripe Charts
  • FastErrorBarRenderableSeries can draw PointMarkers
  • Improved auto ranging of series with bars, such as Columns, Candlesticks, BoxPlot, ErrorBars, etc
  • Added support of Digital and Dashed lines with UniformDataSeries 
  • Added support of PixelPointMarker3D selection to VertexSelectionModifier3D
  • Exposed CullingPriority property on DefaultTickLabel. It is used to filter out some labels on an Axis to reduce their amount. This is useful when a custom labels culling algorithm is used

Breaking Changes

  • Method signature change: added a single parameter flag to IDataSeries.Clear() method that indicates whether to release internally allocated arrays. All implementers of IDataSeries interface and custom DataSeries have to consider this change in their implementations.
  • Method signature change: added a single parameter flag to IDataSeries.GetXRange() method that specifies whether requested range should be entire data range or positive part of it only. All implementers of IDataSeries interface and custom DataSeries have to consider this change in their implementations.
  • API change: IOhlcDataSeries does not extend IHlcDataSeries interface any longer. Also, OhlcPointSeriesTransformation does not extend HlcPointSeriesTransformation and has corresponding API changes.
  • Obsolete method: BaseRenderableSeries.GetDatapointWidth() method and all overloads made obsolete.
  • Obsolete property: UseUniformWidth property in BaseColumnRenderableSeries and BaseColumnRenderableSeriesViewModel marked obsolete. It hadn’t have any effect on Columns rendering, because bars always were drawn with uniform width.

Bug Fixes

  • SC-6566 Fixed System.AccessViolationException in FastLineRenderableSeries with dashed digital lines and NaNs
  • SC-6521 Fixed VerticalSliceModifier not updating tooltips when X1 property of VerticalLineAnnotation changes 
  • Fixed gradient fill for flipped Columns 
  • SC-5953 Fixed AccessViolation exception related to VRAM buffer sizes  
  • SC-6525 Implemented handling of VXEngine initialization exceptions for 2D, 3D charts 
  • SC-6339 Fixed intermittent crashed during finalization of SciChart3D objects
  • SC-5493 Fixed ImpulseSeries, ScatterSeries not appearing in Legend when added using MVVM API 
  • SC-6397 Fixed RolloverModifier not snapping to the nearest point with FastImpulseRenderableSeries 
  • SC-5101 Fixed transparency for Waterfall3D slices 
  • SC-6480 Fixed ZoomExtents for ErrorBars and Value Axis Types 
  • SC-6483 Fixed rendering of ErrorBars with NaN, PositiveInfinity, NegativeInfinity as error values 
  • SC-6570 Fixed rendering of lines caused by VisibleRange animation with ImpossibleMode
  • SC-6598 Fixed AnnotationCreationModifier with Polar Charts
  • SC-6599 Fixed VerticalSliceModifier loosing vertical lines under certain conditions when Annotations MVVM API is used
  • Fixed a memory leak in VerticalSliceModifier when vertical lines are removed programmatically
  • Implemented ‘Move’ event for SciChartMultiPane

We have also added a huge number of tests for covering new features, improvements and updated documentation.

Where to get it

SciChart WPF v6.6 Beta is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

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

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

The post SciChart WPF v6.6 Beta Released! appeared first on SciChart.

Viewing all 303 articles
Browse latest View live