Releases: ScottPlot/ScottPlot
Releases · ScottPlot/ScottPlot
ScottPlot 5.1.58
- 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
CircleWithLineandTriangleWithLine, 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
- The transition from ScottPlot
5.0to5.1has breaking changes which are likely to affect advanced users who maintain custom plot types. Upgrading our SkiaSharp from2.88to3.119brought many improvements, but significantly changed the functionality ofSkiaSharp.SKPaintwhich many of our drawing operations relied on. To minimize the impact of this change, references toSkiaSharp.SKPainthave been replaced withScottPlot.Paintwhich 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.SKPaintnow acceptScottPlot.Paint Paint.MeasureText()now returns a singlePixelRectinstead of usingoutvariables- Rendering: Significantly reduced the number of allocations by passing
Paintthroughout 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 toIPlotControlto improve cross-platform support for mouse interactions - SignalXY: Reduced heap allocations by modifying
ISignalXYSourceto useIReadOnlyList<Pixel>instead ofPixel[](#5091, #5078) @bclehmann - Palette: Added
Invert()andInvertHue()toIPaletteso palettes for light backgrounds can be reused for dark backgrounds (#5094) @NeilMacMullen - Colormap: Added
Invert()andInvertHue()toIPaletteso palettes for light backgrounds can be reused for dark backgrounds (#5094) @NeilMacMullen - Palettes: Added a
ColorblindFriendlyDarkpalette to improve accessibility of categorical plots with dark backgrounds (#5094) @NeilMacMullen - Multiplot: Added a collection of
PreRenderActionsto 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
Indexso 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
- 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
IsAxisAboveDataproperty 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
LabelsOnTopoption 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, andOpenCircleWithEksmarkers (#4963, #4972) @CoderPM2011 - NumericConversion: Added type-specific
Clamp()overloads prevent boxing and improve performance (#4985) @kevin100702 - Maui: Add explicit
net8.0target to facilitate platform-agnostic unit testing (#4988) @Adam-- - Drawing: Add
FillPath()andFillCircle()and deprecate draw overloads that accept aFillStyle(#4987) @CoderPM2011 - GitHub: Create a
devconainer.jsonfile 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
Radiusproperty (instead of forcing1.0) and improved rendering and SVG export (#5020) @CoderPM2011 @aespitia - Data Streamer: Added
FillYand related properties so streaming plots support filled ares (#4948, #5023) @manaruto @Stephanowicz - Plot: Added
FigureBorderandDataBorderfor displaying custom borders on plots and subplots (#4854, #5024) @CoderPM2011 - Angle: Added
Invertedproperty and support forAnglecomparison using equality operators - Polar Axis: Added a
Clockwiseproperty 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
RenderStrategyproperty so users can use custom rendering logic (#5035) @bclehmann - Heatmap: Added
Heatmap.RenderStrategies.Rectanglesto improve SVG support by drawing each cell of a heatmap as a distinct rectangle (#4950, #5020, #5035) @CoderPM2011 @bclehmann @MRC-Karel - Color: Added an
Opacityproperty to complimentWithOpacity()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
OnLostFocusevents to improve mouse/keyboard interactivity following alt+tab window switching (#5053) @afunc233
ScottPlot 5.0.55
- 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
LineColornow sets both line color and outline color to improve support for filled markers with outlines (#4715) - Axes: Exposed
GetPanels()and addedGetXAxes()andGetYAxes()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
SquareZoomOutsupport for inverted axes (#4837, #4836) @StendProg @Corbini - Axes: Added
LogMinorTickGeneratorto 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
XmlnsDefinitionandXmlnsPrefixassembly information to simplify referencing in XAML (#4853) @Muny - Plot: Calling
Plot.Title()will always enable its visibility. CallPlot.Title(false)to hide the title. (#4804, #4856) - Layout: Calling
Frameless(false)enables visibility of all panels, undoing the actions ofFrameless()(#4804, #4856) @manaruto @bouyeijiang - Generate: Added helper methods for generating collections of
DateTimeOffsetobjects (#4863, #4861) @bclehmann @bukowa
ScottPlot 5.0.54
- Multiplot: Improved API for advanced layout customization. See cookbook and demo application for examples. (#4738)
- Multiplot: Use new shared axis manager.
Multiplot.ShareY()is nowMultiplot.SharedAxes.ShareY()as seen in demo application. (#4738) - Multiplot: Moved state management and pixel lookup logic based on previous renders into the
IMultiplot.LastRenderproperty (#4738) - Multiplot: Added
Subplotsproperty for plot collection management and replacedIMultiplot.CountwithMultiplot.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 setMinimumSizeandMaximumSizeto the same value - WinForms: improve
ScottPlot.Image.GetBitmap()memory management and disposal - Image: Added
Scaled()andResized()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
- 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
IMultiplotallowing 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
- Controls: Fix issue preventing the context menu from appearing after it was used to open a new window (#4529, #4671) @wi-fr @david3951445
- Eto: Improved implementation of the new multi-plot rendering system (#4675) @qaz7349134142024
ScottPlot 5.0.51
- 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