Skip to content

Releases: ScottPlot/ScottPlot

ScottPlot 5.1.58

29 Mar 11:29

Choose a tag to compare

  • Target .NET 10 and remove unsupported .NET targets (#5154) @swharden
  • FillStyle: Reverted change from previous version to make this class public (#5126) @jurihock
  • Legend: Permit custom fill color when using MarkerShapeOverride (#5137, #5136) @aespitia
  • Axes: Improve SnapToTicks behavior for inverted axes (#5144, #4316, #5143) @BrianAtZetica @CoderPM2011
  • Axes: Improve behavior of zooming while opposite axes are linked (#5178) @jurihock
  • Axes: Removed stray debug statement from the in FloatingAxis class (#5180) @wi-fr
  • Controls: Exposed UserInputProcessor.ContextMenuItems getter to support menu customization (#5183) @btarb24
  • Controls: Do not show right-click menu if it has zero items (#5184) @btarb24
  • Microphone Demo: Improve behavior on systems with no audio input devices (#5211) @myd7349
  • Avalonia: Improve behavior of scroll wheel when interacting with plots nested in ScrollViewers (#5233) @AscendLiu
  • Heatmap: Improve axis alignment when using SVG output (#5145) @timmer98
  • WinUI: Improve support for multi-monitor and custom DPI scale detection (#5150) @diluculo
  • Markers: Added shapes CircleWithLine and TriangleWithLine, each with left and right variants (#5194) @btarb24
  • Multiplot: Improved FractionRect constructor and property names (#5196) @DKahn144
  • InteractiveVerticalLine: Added properties to customize label styles (#5208) @Guillaume-Deville

ScottPlot 5.1.57

11 Oct 15:18

Choose a tag to compare

  • The transition from ScottPlot 5.0 to 5.1 has breaking changes which are likely to affect advanced users who maintain custom plot types. Upgrading our SkiaSharp from 2.88 to 3.119 brought many improvements, but significantly changed the functionality of SkiaSharp.SKPaint which many of our drawing operations relied on. To minimize the impact of this change, references to SkiaSharp.SKPaint have been replaced with ScottPlot.Paint which closely resembles the original API, minimizing amount of code changes required to upgrade. This version aims at making this upgrade possible, and future versions will refine these objects to improve performance and minimize allocations.
  • Public methods that accepted SkiaSharp.SKPaint now accept ScottPlot.Paint
  • Paint.MeasureText() now returns a single PixelRect instead of using out variables
  • Rendering: Significantly reduced the number of allocations by passing Paint throughout the render flow
  • NuGet: Bundle all third party license and copyright notices into a single file included in the NuGet package (#5068, #5075) @jelhan, @bclehmann
  • Colormaps: Updated the Turbo colormap to use the identical color table published by the original author (#5075) @bclehmann
  • Interactive Plottables: Created a new collection of interactive plottables which do not require manually wiring mouse events to support hover and click-drag manipulation
  • Controls: Added SetCursor() functionality to IPlotControl to improve cross-platform support for mouse interactions
  • SignalXY: Reduced heap allocations by modifying ISignalXYSource to use IReadOnlyList<Pixel> instead of Pixel[] (#5091, #5078) @bclehmann
  • Palette: Added Invert() and InvertHue() to IPalette so palettes for light backgrounds can be reused for dark backgrounds (#5094) @NeilMacMullen
  • Colormap: Added Invert() and InvertHue() to IPalette so palettes for light backgrounds can be reused for dark backgrounds (#5094) @NeilMacMullen
  • Palettes: Added a ColorblindFriendlyDark palette to improve accessibility of categorical plots with dark backgrounds (#5094) @NeilMacMullen
  • Multiplot: Added a collection of PreRenderActions to facilitate synchronization of data between subplots (#5095) @NeilMacMullen
  • Histogram: Optimized bin count accumulation strategy to improve performance when creating histograms (#5102) @fissssssh
  • Legend: Added support for defining an Index so manually added items can be displayed in preferred sequence (#5107) @timmer98
  • Avalonia: Improve behavior through focus release and acquisition cycles (#5109, #5105) @nbeck-SMT

ScottPlot 5.0.56

23 Aug 03:14

Choose a tag to compare

  • Statistics: Added support for kernel density estimation with Epanechnikov, Gaussian, Uniform, and Triangular strategies. Scott's rule (no relation) was implemented for bandwidth estimation (#4869) @bclehmann
  • Radar: Added a IsAxisAboveData property to allow the axes to be rendered on top of the data series (#4874) @Christoph-Wagner
  • Scatter: Add support for vertically oriented gradient fills (#4881) @manaruto
  • Bar Plot: Add LabelsOnTop option to allow bar labels to always be displayed and never get overlapped by other bars or plottables (#4886, #4855) @manaruto @bclehmann
  • PolarAxis: Add support for custom background color (#4897) @CoderPM2011
  • PolarAxis: Added support for custom spoke lengths (#4897) @CoderPM2011
  • Axes: Improve automatic DateTime tick generation for inverted axes (#4900, #4851) @manaruto @sunwayking
  • Ticks: Improve behavior of DateTime ticks for plots with zero-sized axes (#4911, #4903) @NeilMacMullen @mccabe93
  • Horizontal and Vertical Line: Improve support for inverted axes (#4920) @manaruto
  • Rendering: Improve support for invisible and zero line width rectangles (#4956) @Fruchtzwerg94
  • Font: Fixed Font.Set() issue associated with premature typeface disposal (#4910, #4958) @sproott @237779932
  • WinUI: Improve support for modifier keys when combining mouse and keyboard inputs (#4967, #4970) @diluculo
  • Markers: Added new OpenCircleWithDot, OpenCircleWithCross, and OpenCircleWithEks markers (#4963, #4972) @CoderPM2011
  • NumericConversion: Added type-specific Clamp() overloads prevent boxing and improve performance (#4985) @kevin100702
  • Maui: Add explicit net8.0 target to facilitate platform-agnostic unit testing (#4988) @Adam--
  • Drawing: Add FillPath() and FillCircle() and deprecate draw overloads that accept a FillStyle (#4987) @CoderPM2011
  • GitHub: Create a devconainer.json file to facilitate development in GitHub Codespaces (#5002) @oxygen-dioxide
  • Maui: Improve behavior for interactive plots when their user input processor is disabled (#4990, #4989) @Adam--
  • Fonts: Added new styling options for weight, slant, density, etc. (#5013, #4873) @aespitia @Christoph-Wagner
  • Labels: Added styling options for underline with customizable thickness and offset (#4893) @manaruto
  • Legend: Added the ability to customize default marker shape for legend items (#5005, #5006) @aespitia
  • Pie: Added a Radius property (instead of forcing 1.0) and improved rendering and SVG export (#5020) @CoderPM2011 @aespitia
  • Data Streamer: Added FillY and related properties so streaming plots support filled ares (#4948, #5023) @manaruto @Stephanowicz
  • Plot: Added FigureBorder and DataBorder for displaying custom borders on plots and subplots (#4854, #5024) @CoderPM2011
  • Angle: Added Inverted property and support for Angle comparison using equality operators
  • Polar Axis: Added a Clockwise property to support clockwise and counter-clockwise translation between Polar and Cartesian coordinates (#5028, #4884, #5046) @CoderPM2011, @mattwelch2000
  • WinUI: Improved support for plots with transparent backgrounds (#5026, #5029) @diluculo
  • Font: Added Fonts.Reset() to restore default styling options (#5013) @aespitia
  • Legend: Respect marker size when a default marker shape is used (#5006, #5031) @manaruto @aespitia
  • Legend: Improve appearance of large markers in legends (#4999, #5031, #5056) @manaruto @winsrp
  • Cookbook: Improve developer experience when generating images using the Visual Studio Test Runner (#4882, #5032) @CoderPM2011
  • Signal: Improve horizontal range accuracy reported by signal plot data sources (#4868, #5033) @CoderPM2011, @dirk-de-bugger, @StendProg
  • Heatmap: Added a RenderStrategy property so users can use custom rendering logic (#5035) @bclehmann
  • Heatmap: Added Heatmap.RenderStrategies.Rectangles to improve SVG support by drawing each cell of a heatmap as a distinct rectangle (#4950, #5020, #5035) @CoderPM2011 @bclehmann @MRC-Karel
  • Color: Added an Opacity property to compliment WithOpacity() which represents opacity as a fractional value (#5041, #5024) @aespitia, @bclehmann
  • Axis Line: Improve alignment of horizontal line labels on the right side of multi-axis plots (#5052) @afunc233
  • Avalonia: Forward OnLostFocus events to improve mouse/keyboard interactivity following alt+tab window switching (#5053) @afunc233

ScottPlot 5.0.55

22 Mar 17:16

Choose a tag to compare

  • WPF: Added autoscale option to the default right-click context menu (#4701) @hsfetterman
  • Interactivity: Make all user action responses public (#4743) @manaruto @bwedding
  • Shapes: Improved display of newly added Eclipse and Arc shapes (#4744, #4739) @CoderPM2011
  • SignalXY: Improve support for generic X and Y collections (#4753, #4746) @JoeStoneAT @bclehmann
  • Axis Rules: Updated minimum and maximum span rules to improve support for inverted axes (#4755, #4735) @manaruto
  • Avalonia: Improved support for transparency at the window level (#4759, #3444, #4732) @bclehmann
  • CoordinateRange: Improve NaN support for Extrema() method (#4770, #4665) @bwedding @uperp
  • Rendering: Improved performance by simplifying axis limit change detection to reduce duplicate renders (#4790, #4783) @bclehmann @dtoppani-twist @chen1tian @ssharks
  • Rectangular Grid: Improve logic used to identify cells from coordinates, fixing issues associated with contour line plots (#4787, #4791) @StendProg @ScottSSapphire
  • Axes: Improve coordinate lookup logic for translating between triangular and Cartesian axes (#4797, #4798) @manaruto
  • SignalXY: Improve performance by reducing allocations and copying inside the render loop (#4794, #4753) @bclehmann
  • CoordinateRangeMutable: Improve comparison logic (#4796) @bclehmann
  • Multiplot: Improve interactivity following Reset() and restore cookbook behavior (#4793)
  • Population: Use stable random number generator for horizontal symbol offsets (#4616) @marklam
  • Demo: Created an Avalonia demo application available for download in the GitHub repository (#4801) @bclehmann
  • Colorbar: Improve support for transparent colormaps (#4685) @Roman-Rak
  • Marker: Setting LineColor now sets both line color and outline color to improve support for filled markers with outlines (#4715)
  • Axes: Exposed GetPanels() and added GetXAxes() and GetYAxes() to facilitate advanced customization (#4717) @hsfetterman
  • Bar Plots: Place value labels below the bars for bars with negative values (#4760) @asmallproblem @jux-stef
  • Tooltip: New plot type for labeling a point in coordinate space using a bubble (#4829, #4751) @CoderPM2011
  • Axis Rules: Improved SquareZoomOut support for inverted axes (#4837, #4836) @StendProg @Corbini
  • Axes: Added LogMinorTickGenerator to support decade-spaced minor ticks on logarithmic axes (#4841) @macaba
  • SVG: Pre-render plots in memory to finalize layout before generating XML to reduce file size and improve performance (#4847, #4842) @manaruto
  • WPF: Added XmlnsDefinition and XmlnsPrefix assembly information to simplify referencing in XAML (#4853) @Muny
  • Plot: Calling Plot.Title() will always enable its visibility. Call Plot.Title(false) to hide the title. (#4804, #4856)
  • Layout: Calling Frameless(false) enables visibility of all panels, undoing the actions of Frameless() (#4804, #4856) @manaruto @bouyeijiang
  • Generate: Added helper methods for generating collections of DateTimeOffset objects (#4863, #4861) @bclehmann @bukowa

ScottPlot 5.0.54

26 Jan 20:06

Choose a tag to compare

  • Multiplot: Improved API for advanced layout customization. See cookbook and demo application for examples. (#4738)
  • Multiplot: Use new shared axis manager. Multiplot.ShareY() is now Multiplot.SharedAxes.ShareY() as seen in demo application. (#4738)
  • Multiplot: Moved state management and pixel lookup logic based on previous renders into the IMultiplot.LastRender property (#4738)
  • Multiplot: Added Subplots property for plot collection management and replaced IMultiplot.Count with Multiplot.Count() (#4738)
  • Axes: Added IAxis.Collapse() helper method to disable tick generation and set size to zero for a given axis (#4738)
  • Multiplot: Added CollapseVertically() to collapse space between vertically stacked plots (#4738)
  • Multiplot: Created DraggableRows() layout to simplify user-resizable multiplots as demonstrated in the demo application (#4738) @VladislavPustovarov @quantfreedom
  • Axes: Added LockSize() helper method to quickly set MinimumSize and MaximumSize to the same value
  • WinForms: improve ScottPlot.Image.GetBitmap() memory management and disposal
  • Image: Added Scaled() and Resized() methods to help resize existing images in memory
  • WinForms: Improve support for transparency for plots placed on Forms with background images (#4698) @luo-ross
  • OpenGL: Improved memory management for applications using scatter plots in OpenGL controls (#4702, #4693) @onur-akaydin @StendProg @allrightsreserved
  • Rendering: Improved detection of changed axis limits and improved behavior of legend item orientation (#4722, #4629) @aespitia
  • Plottables: Added many new shapes like arcs, circle sectors, annular sectors, and more as seen in the cookbook (#4739) @CoderPM2011 @heartacker

ScottPlot 5.0.53

13 Jan 02:12
00e26a5

Choose a tag to compare

  • Axis Rules: Improved support for inner and boundaries on plots with inverted axis limits (#4686, #4609) @kebox7
  • OpenGL: Improved behavior for applications which have multiple OpenGL instances (#4693) @onur-akaydin
  • Multiplot: Improved interactive behavior in .NET Maui, Blazor, and WinUI controls (#4691) @King-Taz
  • IPlotControl: Refactor to support IMultiplot allowing users to inject their own multi-plot logic (#4687)
  • Cookbook: Added a colors page demonstrating all colors included with ScottPlot (#4681) @quantfreedom

ScottPlot 5.0.52

09 Jan 00:48

Choose a tag to compare

ScottPlot 5.0.51

08 Jan 00:43

Choose a tag to compare

  • WPF: Updated the WPF control to pass render requests though the new Multiplot system (#4666, #4667) @zygfrydw @VladislavPustovarov
  • Multiplot: Improved right-click context menu support for multi-plot user controls (#4671) @nilsakesson
  • Palette: Added GetColors() extension method for creating an array of colors from an existing palette

ScottPlot 5.0.50

06 Jan 23:33
264e1c6

Choose a tag to compare

  • WPF: Updated the WPF control to pass render requests though the new Multiplot system (#4666, #4667) @zygfrydw

ScottPlot 5.0.49

06 Jan 20:10
acf4837

Choose a tag to compare

  • WPF: Updated the WPF control to pass render requests though the new Multiplot system (#4666, #4667) @zygfrydw