Oxyplot v2.1.0 Release Notes
Release Date: 2021-10-02 // about 3 years 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 positionAxisPosition.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 positionAxisPosition.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)