Oxyplot v2.1.0 Release Notes

Release Date: 2021-10-02 // 11 months ago
  • โž• Added

    • Made Legend Items clickable to toggle series visibility (#644)
    • โž• Added properties LegendKey and SeriesGroupName to Series, allowing grouping series between multiple legends and/or within same legend (#644)
    • OxyPlot.ImageSharp (#1188)
    • ๐Ÿ’ป WPF ExampleBrowser can display transposed versions of examples (#1402)
    • ๐Ÿ‘Œ Support for transposable Annotations (#1417)
    • ๐Ÿ‘Œ Support for NET40 (#1452)
    • ๐Ÿ‘Œ Support for high DPI for WPF (#149)
    • EdgeRenderingMode property to PlotElement, allowing customization of the way edges are treated by the renderer (#1428, #1358, #1077, #843, #145)
    • Color palettes Viridis, Plasma, Magma, Inferno and Cividis (#1505)
    • Renderer based on SkiaSharp, including exporters for PNG, JPEG, PDF and SVG (#1509)
    • Example for Issue #1524: HitTracker IndexOutOfRangeException with HeatMapSeries
    • ๐Ÿ‘ Text shaping support to SkiaRenderContext (#1520)
    • PlotView based on SkiaRenderContext (OxyPlot.SkiaSharp.Wpf) (#1515)
    • ๐Ÿ‘ DrawImage support to OxyPlot.ImageSharp (#1530)
    • ๐Ÿ‘ Dpi support to OxyPlot.ImageSharp (#1530)
    • ๐Ÿ‘ Dash support to OxyPlot.ImageSharp
    • ๐Ÿ‘ Clipping support to OxyPlot.ImageSharp
    • JpegExporter for OxyPlot.ImageSharp
    • Multi-line aligned text rendering example
    • ๐Ÿ WindowsForms ExampleBrowser can display transposed versions of examples (#1535)
    • Example for Issue #1545 showing the use of different line endings
    • ๐Ÿ‘Œ Support for unix line endings in OxyPlot.ImageSharp, OxyPlot.Svg, and OxyPlot.Pdf (#1545)
    • ๐Ÿ‘ Multi-Line Text support to SkiaRenderContext (#1538)
    • โž• Added title clipping to PlotModel (#1510)
    • โž• Added LabelStep and LabelSpacing to contour series (#1511)
    • Example for Issue #1481 showing text rendering with emoji
    • Native Clipping for OxyPlot.SvgRenderContext (#1564)
    • Examples of full plot area polar plots with non-zero minimums (#1586)
    • Read-Only collection interfaces for .NET 4.0 (#1600)
    • โž• Add PlotModel.AssignColorsToInvisibleSeries property to control whether invisible series are included or skipped when assigning automatic colors (#1599)
    • Overlapping bar series (#1265)
    • AxisPosition.All for axes which need a margin on all sides of the plot area (#1574)
    • IRenderContext.ClipCount property (#1593)
    • โž• Additional parameters for HistogramSeries LabelFormatString
    • Absolute screen-space axis margins (#1569)
    • netstandard2.0 TargetFramework (#1668)
    • โž• Add a PlotView.TextMeasurementMethod property to allow using the much faster GlyphTypeface based measurement at runtime (#1673)
    • OxyPlot.Wpf.XamlRenderContext - this doesn't use StreamGeometry and can be used for rendering to XAML (#1673)
    • SkiaRenderContext.MiterLimit property (#1690)
    • Example for Issue #1685 showing spurious lines in the ContourSeries
    • Example for Issue #1716 showing poor tick spacing on DateTimeAxis with interval types of Weeks or Years
    • Example for label placement on BarSeries with non-zero BaseValue (#1726)
    • ๐Ÿ’… ExtrapolationLineSeries as described in #1740 to allow to display pre-defined intervals of a line series with a different style than the rest.
    • โž• Added DataRange, unit tests and examples as support for ExtrapolationLineSeries.
    • โž• Add control over how far from the series the tracker fires (#1736)
    • โž• Add option to check distance for result between data points (#1736)
    • Legend.AllowUseFullExtent property to control whether legends should be able to use the full extent of the plot (#1743)
    • Legend.ShowInvisibleSeries property to control whether invisible series should be shown on the legend (#1730)
    • ๐Ÿ‘ OxyPlot.SkiaSharp.Wpf PlotView support for simple render transforms (#1785)

    ๐Ÿ”„ Changed

    • Legends model (#644)
    • 0๏ธโƒฃ Default behaviour is now plot without Legend (#644)
    • ๐Ÿšš Moved WPF Plot component to Oxyplot.Contrib.Wpf (#1399)
    • ErrorColumnSeries changed to ErrorBarSeries, also works in transposed mode (#1402)
    • ๐Ÿšš Moved reporting functionality to separate projects (#1403)
    • ๐Ÿšš Moved reporting functionality to oxyplot-reporting repository (#1403)
    • ๐Ÿ”„ Change IPlotModel.Render to take an OxyRect (#1425)
    • ๐Ÿ”€ Merge UIElement and SelectableElement into Element (#1426)
    • โฌ†๏ธ Upgrade to .NET Core 3.1 (#1488)
    • DrawRectangle(...), DrawLine(...), DrawEllipse(...), DrawPolygon(...) and related overloads in IRenderContext and related extensions in RenderingExtensions now require an EdgeRenderingMode
    • 0๏ธโƒฃ Default color palette for LinearColorAxis from Jet to Viridis (#1505)
    • Extract most of the functionality from OxyPlot.Wpf into OxyPlot.Wpf.Shared to allow code sharing with other WPF PlotViews (#1515)
    • ๐Ÿ’ป WPF ExampleBrowser can switch between Canvas and SkiaSharp renderers (#1515)
    • OxyPlot.ImageSharp now targets .NET Standard 1.3 (#1530)
    • SkiaRenderContext does not apply pixel snapping when rendering to vector graphic (#1539)
    • Mark OxyPlot.PdfExporter and OxyPlot.Pdf.PdfExporter as obsolete (#1527)
    • Replace Axis.DesiredSize by Axis.DesiredMargin, change signature of Axis.Measure(...) (#453)
    • Axis renderers now render all ticks they are provided (#1580)
    • ๐Ÿ›  Auto margins don't reserve space for axis labels if axis range is fixed (#1577)
    • CategoryAxis should not contain rendering information about BarSeries (#741)
    • CategorizedSeries changed to BarSeriesBase (#741)
    • โšก๏ธ System.Drawing.Common references updated to 4.7.0 (#1608)
    • ๐Ÿ”ง Invisible series are assigned automatic colors by default, configurable with PlotModel.AssignColorsToInvisibleSeries property that defaults to true (#1599)
    • StemSeries, AreaSeries, TwoColorAreaSeries, and StairStepSeries use ActualMarkerColor (#1630)
    • Axes with AxisPosition.None make no contribution to margins (#1574)
    • 0๏ธโƒฃ AngleAxis has position AxisPosition.All by default (#1574)
    • Clipping API changed from SetClip(...) and ResetClip() to PushClip(...) and PopClip() (#1593)
    • โœ‚ Remove TileMapAnnotation examples from automated testing (#1667)
    • โšก๏ธ Optimize clipping calls (#1661)
    • Mark CandleStickAndVolumeSeries as obsolete (#1661)
    • Implement StreamGeometry-based implementations of DrawEllipses, DrawLine, DrawLineSegments and DrawRectangle(s) which improves the rendering speed on WPF (#1673)
    • ๐ŸŽ Change algorithm of ContourSeries.JoinContourSegments(). This should improve performance in most cases, but will cause labels to appear in different spots than before (#1685)
    • โšก๏ธ Updated Series.cd with ExtrapolationLineSeries and removed classes that do not exist anymore

    โœ‚ Removed

    • โœ‚ Remove PlotModel.Legends (#644)
    • ColumnSeries - functionality is replaced by transposed BarSeries (#1402)
    • Copy to text report Ctrl+Alt+R (#1403)
    • โœ‚ Remove exporter Background properties (#1409)
    • โœ‚ Remove OxyThickness Width and Height properties (#1429)
    • RenderingExtensions.DrawRectangleAsPolygon(...) extension methods. IRenderContext.DrawRectangle(...) with an appropriate EdgeRenderingMode can be used instead.
    • SkiaSharp.PdfExporter.Dpi property (#1591)
    • โšก๏ธ Axis.UpdateFromSeries(...) and Series.UpdateValidData() (#741)
    • ๐Ÿ‘Œ Support for IRenderContext implementations without native clipping (#1593)
    • CohenSutherlandClipping and SutherlandHodgmanClipping (#1593)
    • DrawClippedXxx(...) extensions in RenderingExtensions (#1661)
    • PathAnnotation.ClipText property - text is now always clipped (#1661)
    • CanvasRenderContext.UseStreamGeometry property - this functionality is replaced by the new XamlRenderContext (#1673)

    ๐Ÿ›  Fixed

    • 0๏ธโƒฃ Legend font size is not affected by DefaultFontSize (#1396)
    • ErrorBarSeries, IntervalBarSeries and TornadoBarSeries work correctly in transposed mode (#1402)
    • ๐Ÿ‘ป Exception when rendering polygon with no points (#1410)
    • ๐Ÿ‘ป Custom tracker strings can cause exception in histogram chart (#1455)
    • ๐Ÿ OxyPlot.WindowsForms package description (#1457)
    • NullReference in VolumeSeries if no data in Items list (#1491)
    • โœ… Possible out-of-bounds exception in HeatMapSeries HitTest (#1524)
    • WPF CanvasRenderContext draws ellipses too small by half stroke thickness (#1537)
    • Text measurement and rendering in OxyPlot.ImageSharp
    • ExampleLibrary reporting annotation-only PlotModels as transposable (#1544)
    • Auto plot margin not taking width of labels into account (#453)
    • WPF PlotView still focusable when Focusable is false (#1440)
    • Disposing a SkiaRenderContext can mess up fonts from another SkiaRenderContext instance (#1573)
    • ๐Ÿ Display of ampersands in OxyPlot.WindowsForms Tracker (#1585)
    • Full Plotarea Polar plot rendering with non-zero minimum values (#1586)
    • 0๏ธโƒฃ Auto margins are set incorrectly if Axis.TitleFontSize is set to non-default value (related to #1577)
    • Incomplete rendering of AreaSeries in some situations (#1512)
    • ColumnSeries / BarSeries not working with more than one value-axis (#729)
    • OxyPlot.SkiaSharp.SvgExporter plot background color (#1619)
    • MinimumPadding incorrect when MaximumPadding is non-zero (#1625)
    • Don't clip zerocrossing axis lines within plot bounds (#1441)
    • Incorrect margins when using Color Axes with AxisPosition.None (#1574)
    • OpenStreetMap example (#1642)
    • Incorrect clipping in TwoColorAreaSeries (#1678)
    • ScreenMin and ScreenMax on Horizontal and Vertical Axes depends on plot bounds (#1652)
    • ๐Ÿ Windows Forms clipping last line of measured text (#1659)
    • Inconsistent Zooming behaviour (#1648)
    • ContourSeries produce fake connections (#1685)
    • Zero-crossing axis bounds (#1708)
    • Incorrect label placement on BarSeries with non-zero BaseValue (#1726)
    • LineAnnotation Text Placement on Reversed Axes (#1741)
    • Image opacity in WinForms and Core Drawing (#1766)
    • ๐Ÿ›  Fix specified Visual is not an ancestor of this Visual issue in WPF rendering (#1787)

Previous changes from v2.1.0-Preview1

  • โž• Added

    • Made Legend Items clickable to toggle series visibility (#644)
    • โž• Added properties LegendKey and SeriesGroupName to Series, allowing grouping series between multiple legends and/or within same legend (#644)
    • OxyPlot.ImageSharp (#1188)
    • ๐Ÿ’ป WPF ExampleBrowser can display transposed versions of examples (#1402)
    • ๐Ÿ‘Œ Support for transposable Annotations (#1417)
    • ๐Ÿ‘Œ Support for NET40 (#1452)
    • ๐Ÿ‘Œ Support for high DPI for WPF (#149)
    • EdgeRenderingMode property to PlotElement, allowing customization of the way edges are treated by the renderer (#1428, #1358, #1077, #843, #145)
    • Color palettes Viridis, Plasma, Magma, Inferno and Cividis (#1505)
    • Renderer based on SkiaSharp, including exporters for PNG, JPEG, PDF and SVG (#1509)
    • Example for Issue #1524: HitTracker IndexOutOfRangeException with HeatMapSeries
    • ๐Ÿ‘ Text shaping support to SkiaRenderContext (#1520)
    • PlotView based on SkiaRenderContext (OxyPlot.SkiaSharp.Wpf) (#1515)
    • ๐Ÿ‘ DrawImage support to OxyPlot.ImageSharp (#1530)
    • ๐Ÿ‘ Dpi support to OxyPlot.ImageSharp (#1530)
    • ๐Ÿ‘ Dash support to OxyPlot.ImageSharp
    • ๐Ÿ‘ Clipping support to OxyPlot.ImageSharp
    • JpegExporter for OxyPlot.ImageSharp
    • Multi-line aligned text rendering example
    • ๐Ÿ WindowsForms ExampleBrowser can display transposed versions of examples (#1535)
    • Example for Issue #1545 showing the use of different line endings
    • ๐Ÿ‘Œ Support for unix line endings in OxyPlot.ImageSharp, OxyPlot.Svg, and OxyPlot.Pdf (#1545)
    • ๐Ÿ‘ Multi-Line Text support to SkiaRenderContext (#1538)
    • โž• Added title clipping to PlotModel (#1510)
    • โž• Added LabelStep and LabelSpacing to contour series (#1511)
    • Example for Issue #1481 showing text rendering with emoji
    • Native Clipping for OxyPlot.SvgRenderContext (#1564)
    • Examples of full plot area polar plots with non-zero minimums (#1586)
    • Read-Only collection interfaces for .NET 4.0 (#1600)
    • โž• Add PlotModel.AssignColorsToInvisibleSeries property to control whether invisible series are included or skipped when assigning automatic colors (#1599)
    • Overlapping bar series (#1265)
    • AxisPosition.All for axes which need a margin on all sides of the plot area (#1574)
    • IRenderContext.ClipCount property (#1593)
    • โž• Additional parameters for HistogramSeries LabelFormatString
    • Absolute screen-space axis margins (#1569)
    • netstandard2.0 TargetFramework (#1668)
    • โž• Add a PlotView.TextMeasurementMethod property to allow using the much faster GlyphTypeface based measurement at runtime (#1673)
    • OxyPlot.Wpf.XamlRenderContext - this doesn't use StreamGeometry and can be used for rendering to XAML (#1673)
    • SkiaRenderContext.MiterLimit property (#1690)
    • Example for Issue #1685 showing spurious lines in the ContourSeries

    ๐Ÿ”„ Changed

    • Legends model (#644)
    • 0๏ธโƒฃ Default behaviour is now plot without Legend (#644)
    • ๐Ÿšš Moved WPF Plot component to Oxyplot.Contrib.Wpf (#1399)
    • ErrorColumnSeries changed to ErrorBarSeries, also works in transposed mode (#1402)
    • ๐Ÿšš Moved reporting functionality to separate projects (#1403)
    • ๐Ÿšš Moved reporting functionality to oxyplot-reporting repository (#1403)
    • ๐Ÿ”„ Change IPlotModel.Render to take an OxyRect (#1425)
    • ๐Ÿ”€ Merge UIElement and SelectableElement into Element (#1426)
    • โฌ†๏ธ Upgrade to .NET Core 3.1 (#1488)
    • DrawRectangle(...), DrawLine(...), DrawEllipse(...), DrawPolygon(...) and related overloads in IRenderContext and related extensions in RenderingExtensions now require an EdgeRenderingMode
    • 0๏ธโƒฃ Default color palette for LinearColorAxis from Jet to Viridis (#1505)
    • Extract most of the functionality from OxyPlot.Wpf into OxyPlot.Wpf.Shared to allow code sharing with other WPF PlotViews (#1515)
    • ๐Ÿ’ป WPF ExampleBrowser can switch between Canvas and SkiaSharp renderers (#1515)
    • OxyPlot.ImageSharp now targets .NET Standard 1.3 (#1530)
    • SkiaRenderContext does not apply pixel snapping when rendering to vector graphic (#1539)
    • Mark OxyPlot.PdfExporter and OxyPlot.Pdf.PdfExporter as obsolete (#1527)
    • Replace Axis.DesiredSize by Axis.DesiredMargin, change signature of Axis.Measure(...) (#453)
    • Axis renderers now render all ticks they are provided (#1580)
    • ๐Ÿ›  Auto margins don't reserve space for axis labels if axis range is fixed (#1577)
    • CategoryAxis should not contain rendering information about BarSeries (#741)
    • CategorizedSeries changed to BarSeriesBase (#741)
    • โšก๏ธ System.Drawing.Common references updated to 4.7.0 (#1608)
    • ๐Ÿ”ง Invisible series are assigned automatic colors by default, configurable with PlotModel.AssignColorsToInvisibleSeries property that defaults to true (#1599)
    • StemSeries, AreaSeries, TwoColorAreaSeries, and StairStepSeries use ActualMarkerColor (#1630)
    • Axes with AxisPosition.None make no contribution to margins (#1574)
    • 0๏ธโƒฃ AngleAxis has position AxisPosition.All by default (#1574)
    • Clipping API changed from SetClip(...) and ResetClip() to PushClip(...) and PopClip() (#1593)
    • โœ‚ Remove TileMapAnnotation examples from automated testing (#1667)
    • โšก๏ธ Optimize clipping calls (#1661)
    • Mark CandleStickAndVolumeSeries as obsolete (#1661)
    • Implement StreamGeometry-based implementations of DrawEllipses, DrawLine, DrawLineSegments and DrawRectangle(s) which improves the rendering speed on WPF (#1673)
    • ๐ŸŽ Change algorithm of ContourSeries.JoinContourSegments(). This should improve performance in most cases, but will cause labels to appear in different spots than before (#1685)

    โœ‚ Removed

    • โœ‚ Remove PlotModel.Legends (#644)
    • ColumnSeries - functionality is replaced by transposed BarSeries (#1402)
    • Copy to text report Ctrl+Alt+R (#1403)
    • โœ‚ Remove exporter Background properties (#1409)
    • โœ‚ Remove OxyThickness Width and Height properties (#1429)
    • RenderingExtensions.DrawRectangleAsPolygon(...) extension methods. IRenderContext.DrawRectangle(...) with an appropriate EdgeRenderingMode can be used instead.
    • SkiaSharp.PdfExporter.Dpi property (#1591)
    • โšก๏ธ Axis.UpdateFromSeries(...) and Series.UpdateValidData() (#741)
    • ๐Ÿ‘Œ Support for IRenderContext implementations without native clipping (#1593)
    • CohenSutherlandClipping and SutherlandHodgmanClipping (#1593)
    • DrawClippedXxx(...) extensions in RenderingExtensions (#1661)
    • PathAnnotation.ClipText property - text is now always clipped (#1661)
    • CanvasRenderContext.UseStreamGeometry property - this functionality is replaced by the new XamlRenderContext (#1673)

    ๐Ÿ›  Fixed

    • 0๏ธโƒฃ Legend font size is not affected by DefaultFontSize (#1396)
    • ErrorBarSeries, IntervalBarSeries and TornadoBarSeries work correctly in transposed mode (#1402)
    • ๐Ÿ‘ป Exception when rendering polygon with no points (#1410)
    • ๐Ÿ‘ป Custom tracker strings can cause exception in histogram chart (#1455)
    • ๐Ÿ OxyPlot.WindowsForms package description (#1457)
    • NullReference in VolumeSeries if no data in Items list (#1491)
    • โœ… Possible out-of-bounds exception in HeatMapSeries HitTest (#1524)
    • WPF CanvasRenderContext draws ellipses too small by half stroke thickness (#1537)
    • Text measurement and rendering in OxyPlot.ImageSharp
    • ExampleLibrary reporting annotation-only PlotModels as transposable (#1544)
    • Auto plot margin not taking width of labels into account (#453)
    • WPF PlotView still focusable when Focusable is false (#1440)
    • Disposing a SkiaRenderContext can mess up fonts from another SkiaRenderContext instance (#1573)
    • ๐Ÿ Display of ampersands in OxyPlot.WindowsForms Tracker (#1585)
    • Full Plotarea Polar plot rendering with non-zero minimum values (#1586)
    • 0๏ธโƒฃ Auto margins are set incorrectly if Axis.TitleFontSize is set to non-default value (related to #1577)
    • Incomplete rendering of AreaSeries in some situations (#1512)
    • ColumnSeries / BarSeries not working with more than one value-axis (#729)
    • OxyPlot.SkiaSharp.SvgExporter plot background color (#1619)
    • MinimumPadding incorrect when MaximumPadding is non-zero (#1625)
    • Don't clip zerocrossing axis lines within plot bounds (#1441)
    • Incorrect margins when using Color Axes with AxisPosition.None (#1574)
    • OpenStreetMap example (#1642)
    • Incorrect clipping in TwoColorAreaSeries (#1678)
    • ScreenMin and ScreenMax on Horizontal and Vertical Axes depends on plot bounds (#1652)
    • ๐Ÿ Windows Forms clipping last line of measured text (#1659)
    • Inconsistent Zooming behaviour (#1648)
    • ContourSeries produce fake connections (#1685)