Oxyplot v2.1.0-Preview1 Release Notes

Release Date: 2020-10-18 // 5 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

    ๐Ÿ”„ 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)

Previous changes from v2.0.0

  • โž• Added

    • ๐Ÿ WindowsForms and Wpf support .NET Core 3.0 (#1331)
    • PngExporter based on System.Common.Drawing (.NET Core) (#1263)
    • ๐Ÿ†• New polar plot axes filling the full plot area (#1056)
    • ๐Ÿ‘Œ Support for three colors in histogram series (#1305)
    • ๐Ÿ Command to copy plot to the clipboard in Windows Forms (Ctrl-C) (#1297)
    • ๐Ÿ†• New InterpolationAlgorithm property in LineSeries and PolylineAnnotation (#494)
    • Catmull-Rom spline interpolation algorithms (#494)
    • FontSize, FontWeight and FontFamily on Wpf.TextAnnotation (#1023)
    • RectangleSeries (#1060)
    • InvalidNumberColor on Wpf.LinearColorAxis (#1087)
    • ContinuousHistogramSeries (#1145)
    • ๐Ÿ‘ Multiline text support for PortableDocumentFont (#1146)
    • โ†ช Workaround for text vertical alignment in SVG Export to accomodate viewers which don't support dominant-baseline (#459, #1198)
    • ๐Ÿ‘Œ Support for transposed (X and Y axis switched) plots with XYAxisSeries (#1334)
    • Color property on HistogramItem (#1347)
    • Count property on HistogramSeries (#1347)
    • ๐Ÿ› Bug in HistogramHelpers.Collect when using out-of-order bin breaks (#1476)

    ๐Ÿ”„ Changed

    • OxyPlot.Core changed to target netstandard 1.0 and net45 (#946, #1147)
    • OxyPlot.ExampleLibrary changed to target netstandard 1.0 and net45 (#946, #1147)
    • ๐Ÿ OxyPlot.Wpf, OxyPlot.WindowsForms, OxyPlot.Pdf changed to target net45 (#946)
    • Place label below negative ColumnSeries (#1119)
    • ๐Ÿ“ฆ Use PackageReference instead of packages.config
    • โœ… Migrated NUnit v2 to v3 and added test adapter
    • TrackerControl reuses existing ContentControl when a new hit tracker result uses the same template as the currently shown tracker (#1281)
    • Overhaul HistogramHelpers (#1345)
    • ๐Ÿ OxyPlot.Windows (UWP) moved to oxyplot-uwp repository (#1378)
    • ๐Ÿ‘‰ Make the PngExporters consistent (#1390)
    • ๐Ÿšš Silverlight project moved to separate repository (#1049)
    • ๐Ÿšš WP8 project moved to separate repository (#1050)
    • ๐Ÿ Windows8 project moved to separate repository (#1103)
    • ๐Ÿšš Avalonia project moved to separate repository
    • ๐Ÿšš Xamarin projects moved to separate repository
    • ๐Ÿšš Xwt project moved to separate repository
    • ๐Ÿšš GTK# projects moved to separate repository
    • ๐Ÿšš SharpDX project moved to separate repository

    ๐Ÿ—„ Deprecated

    • ๐Ÿ OxyPlot.WP8 package. Use OxyPlot.Windows (UWP) instead (#996)

    โœ‚ Removed

    • LabelFontSize property from HistogramSeries (#1309)
    • Smooth property from LineSeries and PolylineAnnotation (#494)
    • ๐Ÿ‘Œ Support for net40 (#960)

    ๐Ÿ›  Fixed

    • ๐Ÿ Manipulation when using touch is not working in Windows (#1011)
    • Ensure a suitable folder is used when creating a temporary file for PNG export in Oxyplot.GtkSharp (#1034)
    • RangeColorAxis is not rendered correctly if the axis is reversed (#1035)
    • ๐Ÿ‘€ OxyMouseEvents not caught due to InvalidatePlot() in WPF (#382)
    • When Color Property of LineSeries is set Markers are not shown (#937)
    • ๐Ÿ”„ Change from linear to logarithmic axis does not work (#1067)
    • ๐Ÿ‘ป OxyPalette.Interpolate() throws exception when paletteSize = 1 (#1068)
    • Infinite loop in LineAnnotation (#1029)
    • OverflowException when zoomed in on logarithmic axis (#1090)
    • ScatterSeries with DateTimeAxis/TimeSpanAxis (#1132)
    • Exporting TextAnnotation with TextColor having 255 alpha to SVG produces opaque text (#1160)
    • โšก๏ธ Chart is not updated when top and bottom are not visible (#1219)
    • Candle overlap each candle (#623)
    • CandleStick is overlapped when item.Open == item.Close in the CandleStickAndVolumeSeries (#1245)
    • ๐ŸŽ Out of memory exception and performance issue with Catmull-Rom Spline (#1237)
    • Cache and Dispose Brush and Pen objects used by GraphicsRenderContext (#1230)
    • โž• Add checks for non-positive StrokeThickess and LineStyle.None in various places (#1312)
    • ๐Ÿ›  Fixed references to RectangleItem in HistogramSeries
    • ๐Ÿ›  Fix AxisChangedEventArgs.DeltaMaximum in Axes.Reset (#1306)
    • ๐Ÿ›  Fixed Tracker for RectangleBarSeries (#1171)
    • RectangleSeries doesn't render Labels (related to #1334)
    • LineSeries line legend placement with reversed X axis (related to #1334)
    • HistogramSeries label placement inconsistent (related to #1334)
    • TwoColorLineSeries and ThreeColorLineSeries don't work with reversed Y axis (related to #1334)
    • Issue with SVG always containing the xml headers (#1212)
    • In WPF, make sure the axes are initalized when the Model is set before the PlotView has been loaded (#1303)
    • MinimumSegmentLength not working for LineSeries (#1044)
    • rendering issues with MagnitudeAxisFullPlotArea (#1364)
    • OxyPlot.Core.Drawing PngExporter background when exporting to stream (#1382)
    • ๐Ÿ Windows Forms clipping last line of rendered text (#1124, #1385)
    • Dispose background brush in OxyPlot.Core.Drawing PngExporter (#1392)