Oxyplot Versions Save

A cross-platform plotting library for .NET

v2.1.2

1 year ago

OxyPlot 2.1.2

Small release, with the main purpose of making important bug-fixes available for the WPF provision, and removing a dependency on an insecure version of System.Drawing.Common

Added

  • Add LineThickness property to TrackerControl (#1831)
  • Add properties for MinimumSegmentLength to series and annotations (#1853)
  • Add fractal examples for PolygonAnnotation and PolylineAnnotations (#1853)
  • Add AxisPreference to PlotManipulator
  • Add VisualStudioToolsManifest.xml to add components to the Visual Studio Designer toolbox (#1446)

Changed

  • Change default MinimumSegmentLength to 2 and remove limits for series and annotations with simple geometry (#1853)
  • Improve performance of StairStepSeries, particularly when zoomed in and X is monotonic or when consecutive points have equal Y components
  • StairStepSeries renders a horizontal line when a point with a valid X component and invalid Y component follows a valid point
  • Update version of System.Drawing.Common

Fixed

  • WPF - OxyPlot doesn't render inside a Popup (#1796)
  • Odd behavior of zooming of Logarithmic axis in Cartesian plot (#1825)
  • SkiaSharp.WPF - OxyPlot doesn't render inside an ElementHost (#1800)
  • NullReference in SkiaSharp WPF renderer if UIElement has no PresentationSource (#1798)
  • WPF DPI Regression (#1799)
  • Code generation for escape sequences in strings (#1824)
  • Axes not always honoring AbsoluteMinimum/AbsoluteMaximum and/or MinimumRange/MaximumRange properties (#1812)
  • WindowsForms tracker no longer clipping outside PlotView boundaries (#1863)
  • Histogram now rendering properly when using logarithmic Y axis (#740)
  • Fix ExampleLibrary build errors in certain code pages (#1890)

Full changelog from 2.1.0: https://github.com/oxyplot/oxyplot/compare/v2.1.0...v2.1.2

Note: there is no version 2.1.1

v2.1.0

2 years ago

OxyPlot 2.1

The primary goal of the 2.1 release is make the new SkiaSharp provisionals available: most users will be required to make code modifications if they wish to target 2.1. While this looks like a point release, there are some significant breaking changes in the API: some components have been removed, and others have been deprecated, but it should be fairly easy to port any code. Due to API changes, the 2.0 'Platform' libraries (e.g. OxyPlot.WPF and OxyPlot.WindowsForms) will not work with OxyPlot.Core 2.1, and will need to be updated: you cannot mix 2.0 and 2.1 binaries. Further details on compatability will be provided below: OxyPlot.WPF in particular has undergone significant changes.

We intend to provide 2.1 releases for OxyPlot.Avalonia, OxyPlot.Gtk, OyxPlot.Xamarin, and OxyPlot.Windows in time.

.NET Versions

  • Support for .NET Framework 4.0 has been re-introduced for OxyPlot.WindowsForms and OxyPlot.WPF. See #1452.

    Some APIs have been updated to support readonly collections. See #1600.

  • Support for .NET Core 3.0 has been removed; libraries now target .NET Core 3.1 instead. See #1488.

  • Core packages are now provided for .NET Standard 2.0 in addition to .NET Standard 1.0. See #1668.

Significant breaking changes (deprecated, removed, moved, or renamed functionality that was not just a bug)

  • Legend functionality has been overhauled. The many Legend prefix properties have been removed from PlotModel. See #644.

    The same legend properties that previously appeared in PlotModel are supported in a new Legend class, along with additional functionality. The PlotModel.Legends collection allows the inclusion of multiple legends on one plot.

    Hidden series are now shown in the legend by default, and visibility can be toggled by clicking on the legend entry. This new behaviour can be disabled by setting Legend.ShowInvisibleSeries = false. See #1763

  • The OxyPlot.Wpf.Plot class and its associated components have been moved to OxyPlot.Contrib.Wpf library. A release of this library will be made soon to go with the 2.1 release. The codebase - which allows plot models to be defined in XAML as an alternative to using a PlotModel bound to a PlotView - will no longer be supported as part of the main library, but continues to function for the time being. In future, and issues with these components should be directed to the OxyPlot-Contrib repository, where we will continue to welcome community code submissions. See #1399.

    In order to make existing code work, it will be necessary to add a reference to the OxyPlot.Contrib.Wpf nuget package (once it is released), and XAML namespace references will changed to "http://oxyplot.org/wpf/contrib". This changes does not affect code using the PlotView component, which remains in OxyPlot.WPF.

  • OxyPlot.Wpf has been split into OxyPlot.Wpf and OxyPlot.Wpf.Shared. The former depends on the latter, and is essential for all functionality.

  • Various events on plot elements have been marked as obsolete. It is better to customise the PlotController to seperate that logic from the plot elements themselves, and to avoid issues with conflicting events. See #111.

    These events will not be removed in the near future, and you can continue to use them for the time being where necessary.

  • ColumnSeries has been removed. You should replace any usage of ColumnSeries with BarSeries. See #1402.

  • CandleStickAndVolumeSeries is obsolete. Consider combining seperate CandleStickSeries and VolumeSeries. See #1661.

  • ErrorColumnSeries has been renamed to ErrorBarSeries for consistency. See #1402.

  • OxyPlot.PdfExporter and OxyPlot.Pdf.PdfExporter are obsolete. Consider the new OxyPlot.SkiaSharp.PdfExporter as an alternative. See #1527.

  • Exporter APIs have been simplified and made more consistent. Use PlotModel.Background to change the background color of export graphics.

  • Reporting functionality has been moved to the OxyPlot.Reporting package. The code resides in the Oxyplot-Reporting repository. See #1403.

  • Various RenderingExtensions methods have been removed. See #1661.

  • The default color palette for color axes has been changed from 'Jet' to 'Viridis'. See #1505.

  • Axis.DesiredSize is replaced with Axis.DesiredMargin. See #1562

New features and functionality

  • OxyPlot.SkiaSharp.WPF provides an alternative PlotView for the WPF platform which uses the SkiaSharp library for immediate-mode rendering. This package targets .NET Core 3.1 and .NET Framework 4.5 and has native dependencies.

  • OxyPlot.SkiaSharp provides cross-platform JPEG, PNG, PDF, and SVG exporters based on the SkiaSharp library. The PDF exporter in particular provides a better alternative to the now obsolete OxyPlot.Pdf provision. This package targets .NET Standard 1.3 and .NET Framework 4.5 and has native dependencies.

  • OxyPlot.ImageSharp provides JPEG and PNG exporters based on a beta realease of the ImageSharp library. This is not an efficient implementation, and lacks full unicode support, but is a managed-only cross-platform option for raster graphics. This package targets .NET Standard 1.3.

  • Screen-Space axis margins. See #1623.

  • ExtrapolationLineSeries added, which allows you to declare regions of the data-space which are extrapolated data. See #1740.

Pervasive fixes

  • OxyPlot.Core.Drawing now shares its implementation with OxyPlot.WindowsForms.
  • Most X/Y Series and Annotations now support 'transposed' axes, where the XAxis is vertical and the YAxis horizontal.
  • Clipping has been consolidated across plot components, providing a more consistent user experiance.

An issue-by-issue changelog can be found the changelog. See also the comparison between v2.0.0 and v2.1.0.

Notes for developers

Despite the previous suggestion that only bug-fixes would be kept after the 2.1.0-Preview1 release, we've decided that the new functionality is compartmentalised enough that it's simpler to publish the develop branch as-is.