Releases: beto-rodriguez/LiveCharts2
2.0.0-beta.361
New Features
Zoom by section
We can now use the mouse right button to use the "zoom by section" feature, it works for all the zooming modes in the library.
Highlights
-
To keep working in the high performance package, The
DataFactory
class had a deep review, everything must be cleaner and should improve in general the performance of the library. -
Now the library handles better
Null/Gaps
, we can now usenull
as a point input and the library will handle that:, this only used to work for nullable primitive types (int?
,double?
,float?
... etc), now we can usenull
for any object.
Older versions
new LineSeries<ObservablePoint>
{
Values = new ObservablePoint[]
{
new ObservablePoint { X = 0, Y = 1 },
new ObservablePoint { X = 1, Y = 4 },
new ObservablePoint { X = 3, Y = null },
new ObservablePoint { X = 4, Y = 5 },
new ObservablePoint { X = 6, Y = 1 },
new ObservablePoint { X = 8, Y = 6 },
}
}
Now: (old syntax is also supported)
new LineSeries<ObservablePoint>
{
Values = new ObservablePoint[]
{
new ObservablePoint { X = 0, Y = 1 },
new ObservablePoint { X = 1, Y = 4 },
null,
new ObservablePoint { X = 4, Y = 5 },
new ObservablePoint { X = 6, Y = 1 },
new ObservablePoint { X = 8, Y = 6 },
}
}
And it produces:
Fixes issues
What's Changed
- Zoom by section by @beto-rodriguez in #581
- 2.0.0-beta.360 by @beto-rodriguez in #590
Full Changelog: v2.0.0-beta.350...2.0.0-beta.360
v2.0.0-beta.350
v2.0.0-beta.350 (An intro to high performance)
This release adds multiple improvements required by the LiveChartsCore.BackersPackage
assembly, it is another assembly (not available in NuGet yet) that improves the performance of the library, adds multiple pre-built themes and much more extra features, we are testing this package and soon will be available for everyone.
The performance buff of this assembly is huge, this is a GIF I recorded with a chart with 300 million points, yes 300,000,000, about 20 GB of RAM (I am out of RAM can not test more points) and everything is super smooth, (the GIF speed is in real time, I am just zooming and panning quickly)
This performance is expected when the library "freezes" the plot, I mean when the data is not changing anymore, but If the data changes it seems that we can handle less than 2 million.
There are still things to improve but this is definitely the way for the library, it is jut a binary search based algorithm but optimized for the case of the library, I compared the time it takes to add 10 million points to different structures, here is the code and the results (net 6 | Release):
It seems that the data structure is actually faster than lists, and really close to arrays, this was an unexpected result, I am so happy with it :)
But that was the time it took to build the data structure, when the data does not change, we do not need to build the structure again, we cache it and then we use it to find the points the user need as he/she/* interacts with the chart (zooming or panning), it takes on average less than 2 milliseconds to find a new set of points (yes it is virtualized, we are of course not drawing the 300 million in the screen).
There are still a couple of issues we need to solve before making this public and I hope that the performance keeps this high.
Oh and I forgot to mention, all you need to change in your code is one line, and all your charts will be boosted.
LiveCharts.Configure(config => config.AddBackersPackageAndDefaults());
So that's it, there are no new things in this release, but there it is required to keep working in the high performance package.
v2.0.0-beta.300
New Features
- Cartesian series now have the
DataLabelsTranslate
property that let us align data labels with a lot of flexibility, for example:
- We can now place PieSeries labels at the
Outer
position
Improvements
Column, row, stacked column an stacked row series have a lot of improvements. Now StackedColumn
inherits from Column
series and StackedRow
inherits from Row
series, this fixed multiple issues because the code was dirty and hard to maintain.
Also column and row series are easier to read now, now bars that share the same secondary coordinate are drawn together.
old versions:
now:
The Padding
property is new in bar series, it indicates the distance to the next bar and replaces the GroupPadidng
propeprrty.
Deprecated
ColumnSeries.GroupPadidng
, RowSeries.GroupPadidng
, StackedColumnSeries.GroupPadidng
, StackedRowSeries.GroupPadidng
are obsoletes and were replaced by ColumnSeries.Padidng
, RowSeries.Padidng
, StackedColumnSeries.Padidng
, StackedRowSeries.Padidng
properties.
issues fixed
#502 and #504 fixed an issue where gaps were not generate properly in the LineSeries.
#497 fixed and issue where gauges labels color was not changing according to the theme.
#503 fixed a bug where the line series was kept in the UI even when the data was cleared.
#391 Tooltips are now placed correctly when the legend is visible.
Full Changelog: v2.0.0-beta.240...v2.0.0-beta.300
v2.0.0-beta.240
Multiple issues fixed, #477, #470, #462, #286
What's Changed
- beta-240 by @beto-rodriguez in #484
Full Changelog: v2.0.0-beta.230...v2.0.0-beta.240
v2.0.0-beta.230
Fixed an issue where unloading then loading the control again caused the control to behave unexpectedly.
What's Changed
- uno install guide by @beto-rodriguez in #455
- beta-210 by @beto-rodriguez in #458
- beta.220 by @beto-rodriguez in #459
- Uno install by @beto-rodriguez in #463
- Fixed memory leaks at least in WPF by @beto-rodriguez in #469
- Reliability by @beto-rodriguez in #472
- beta 2.0.0-230 by @beto-rodriguez in #474
Full Changelog: beta.200...v2.0.0-beta.230
beta.220
This release introduces many new features: adds support for Uno Platform, a new web site, updates Maui to RC2,
adds support for Eto.Forms, improves drastically zooming and panning in touch devices (Uno, Maui and Xamarin).
Welcome Uno Platform
There was a step missing for LiveCharts2 to be a real cross platform library, LiveCharts2 is now in Uno Platform!
The LiveChartsCore.SkiaSharpView.Uno NuGet package provides 'ready-to-go' assemblies for Uno at UWP (10.0.18362), Wasm (net 6), Wpf (net 6), GTK (net 6) and Android (net 6). We keep working in the IOS, MacCatalyst and MacOS flavors.
New web site
You can now visit https://lvcharts.com/ to browse the samples, or to explore the assemblies in this repository.
Both (samples and API explorer) are generated automatically based on this repo, so feel free to create a PR in this repo to improve anything in the documentation.
Huge improvements to touch devices
In previous versions it worked in touch devices but it was using the same logic as desktop platforms, now zooming and panning feels natural in touch devices, you should now notice how the chart follows your fingers as you move the chart and it has also a cool bounce animation when you reach an edge, the following video was recorder in the Xamarin sample, but it is also implemented in Uno (Android) and Maui:
Untitled.3.mp4
Welcome Eto.Forms
Thanks to @rafntor for adding the Eto.Forms View and the samples.
Updated Maui to RC2
Now Maui package is updated and working with RC 2, notice there is an issue in Maui rc2 detecting gestures dotnet/maui#6553.
UWP package is obsolete now
The LiveChartsCore.SkiaSharpView.UWP will no longer receive new updates, instead it was replaced by LiveChartsCore.SkiaSharpView.Uno, just install the Uno package and everything will work as it used to, you also need to rename the namespaces from LiveChartsCore.SkiaSharpView.UWP
to LiveChartsCore.SkiaSharpView.Uno
.
Assemblies are not strong-named anymore
From MS docs and also GitHub:
For .NET Core and .NET 5+, strong-named assemblies do not provide material benefits. The runtime never validates the strong-name signature, nor does it use the strong-name for assembly binding.
Strong named assemblies will not be provided by the library anymore, but when you need strong named assemblies, I added the pack.ps1
file at the root of the repo, this tool helps you to build and pack the assemblies in the library, then it is up to you to strong name them.
Multiple fixed issues.
See the links to the prs bellow.
What's Changed
- Things have changed in the process... just some cleanup by @beto-rodriguez in #379
- Port to Eto.Forms by @rafntor in #388
- Improve wording and grammar by @evanknapke in #398
- Vector manager by @beto-rodriguez in #408
- Remove map obsoletes by @beto-rodriguez in #414
- ci by @beto-rodriguez in #415
- Fix Build issue with Maui by @ChrisPulman in #433
- Welcome Uno by @beto-rodriguez in #442
- Fixed LegendBackground color issue and Binding exceptions for conversion to double (Xamarin Forms and Maui) by @vadimffe in #440
- Multiple minor fixes by @beto-rodriguez in #446
- Improvements for zooming and panning by @beto-rodriguez in #447
- Fixed a bug in the axis that could cause an incorrect size of area for the labels if _forceStepToMin is true by @MarcF12 in #438
- Correct spelling, fix case for domInterop.js by @erichiller in #427
- Multiple fixes by @beto-rodriguez in #448
- Cleanup by @beto-rodriguez in #449
- Fix Persian and Arabic text(label) rendering by @raminmjj in #421
- Uno.mobile by @beto-rodriguez in #452
- beta-200 by @beto-rodriguez in #454
New Contributors
- @rafntor made their first contribution in #388
- @evanknapke made their first contribution in #398
- @ChrisPulman made their first contribution in #433
- @vadimffe made their first contribution in #440
- @MarcF12 made their first contribution in #438
- @erichiller made their first contribution in #427
- @raminmjj made their first contribution in #421
Full Changelog: beta.100...beta.200
beta.101
Fixed an important memory leak, improved Avalonia, new event to handle the case where points overlap easily.
What's Changed
- Axes fixes by @beto-rodriguez in #328
- Legends/tooltips review by @beto-rodriguez in #345
- Docs by @beto-rodriguez in #336
- Docs by @beto-rodriguez in #351
- Fixes #355 (UWP compatibility issue with Win10 build 17763) by @jnayee in #358
- Memory leaks by @beto-rodriguez in #360
- Concurrency by @beto-rodriguez in #368
- A review to simplify events by @beto-rodriguez in #371
Full Changelog: beta.90...beta.100
Beta.90
Highlights
- The Maui package is now available on NuGet
- Assemblies are now strong-named
- Updated WinUI package to
WindowsAppSdk 1.0
- New events to detect when the pointed goes down or hovers over a point, checkout the
samples/{ platform }/Events
What's Changed
- Setting foreground and background for default legend in UWP by @pino951 in #269
- fixed polar bug by @dmedine in #272
- WinUI references update by @alex4998 in #299
- Maui view by @beto-rodriguez in #279
- Pointer events, tooltips review by @beto-rodriguez in #305
- Pointer down events by @beto-rodriguez in #309
- Apply fixes from CodeFactor by @beto-rodriguez in #313
- code cleanup by @beto-rodriguez in #311
- Code quality by @beto-rodriguez in #314
- code quality by @beto-rodriguez in #315
New Contributors
- @pino951 made their first contribution in #269
- @dmedine made their first contribution in #272
- @alex4998 made their first contribution in #299
Full Changelog: beta.80...beta.90
2.0.0-beta.80
Blazor Web Assembly version
This release includes the Blazor WebAssembly package, we can now run LiveCharts in the browser using dotnet 6 rc2, it is an early version but most of the features are supported now.
WinUI version
The WinUI package was updated from PrjectReunion 0.8.0
to Microsoft.WindowsAppSDK experimental-1
package.
Maui version
Maui keeps evolving and changing a lot every in every preview, the development of this package is paused by now.
Fixed issues
- Fixed UWP NuGet package installation issues #145.
- Fixed WinUI NuGet package installation issues #192 #212
- Fixed an issue where the series could disappear from the UI #235
- Fixed a possible NRE, see #244 (@Maximilian-Renner)
- Fixed an issue where tooltips were not fired in the accurate position (@wenya90)
- Fixed an issue where charts were not saving as images #231 (@aspion-ae).
- Improved maps, maps have a new API that enables animations and will support more shapes in a map, such as indicators and new series #197 #209 #224, there is some work to do there yet but this is a good start.
Breaking changes
Sadly the maps API has changed, it is a necessary change to build better maps, it is a small but breaking change, see #197 for more info.
Automatically generated release notes start here
What's Changed
- Fix MotionCanvas to support dynamic loading/unloading by @mark-monteiro in #109
- Allow WinUI MotionCanvas to be unloaded/re-loaded correctly by @mark-monteiro in #110
- Support null values in DateTimePoint constructor by @mark-monteiro in #113
- Bugfix 100 by @LabuzzMichal in #111
- Scale
Section
coordinates correctly by @mark-monteiro in #117 - Uwp by @beto-rodriguez in #118
- fixes #63 by @beto-rodriguez in #125
- Fix onepoint display by @powerpdw in #121
- readme: fix typos by @swharden in #127
- Load Theme Correctly in
DrawMarginFrame
by @mark-monteiro in #130 - Polarchart by @beto-rodriguez in #157
- No system.drawing by @beto-rodriguez in #158
- Fixes visibility issues by @beto-rodriguez in #178
- Fixes display scaling in UWP by @jnayee in #179
- Fixes reattach visual scaling in UWP & WinUI by @jnayee in #181
- new maps API by @beto-rodriguez in #197
- New maps api 2 by @beto-rodriguez in #209
- Improvements to maps by @beto-rodriguez in #224
- Fixed issue #198, removed duplicate code by @aspion-ae in #231
- Visibility issues by @beto-rodriguez in #235
- Bugfix WPF: Chart.cs and GeoMap.cs by @Maximilian-Renner in #244
- Blazor wasm by @beto-rodriguez in #239
- fix Line and Scatter point mesure, TooltipFindingStrategy by @wenya90 in #246
New Contributors
- @mark-monteiro made their first contribution in #109
- @powerpdw made their first contribution in #121
- @swharden made their first contribution in #127
- @jnayee made their first contribution in #179
- @aspion-ae made their first contribution in #231
- @Maximilian-Renner made their first contribution in #244
- @wenya90 made their first contribution in #246
Full Changelog: 2.0.0-beta.33...beta.80