Skip to content

Bump ScottPlot from 4.1.74 to 5.1.59 - #1

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/examples/FinanceSharp.Examples/ScottPlot-5.1.59
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/examples/FinanceSharp.Examples/ScottPlot-5.1.59

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 7, 2026

Copy link
Copy Markdown

Updated ScottPlot from 4.1.74 to 5.1.59.

Release notes

Sourced from ScottPlot's releases.

5.1.59

  • Avalonia: Add support for Avalonia 12 (#​5233) @​bclehmann
  • Avalonia: Implement cross-platform copy-to-clipboard (#​5167) @​bclehmann
  • Eto: Fix PixelFormat namespace ambiguity in EtoPlot builds (#​5238) @​CoderPM2011
  • Interactivity: Prevent the ability to drag invisible lines (#​5215) @​btarb24
  • SignalXY: Fix rendering of plots using integer X values (#​5121, #​5108) @​nbeck-SMT
  • Scatter: Reduce memory allocations when rendering scatter plots (#​5129) @​Ben-D-Anderson
  • Interactivity: Add trend lines that extend infinitely in both directions (#​5181) @​btarb24
  • Controls: Improve modifier key handling when plots regain focus (#​5209) @​btarb24
  • Autoscaling: Fix zero-span axis ranges when data has identical X and Y values (#​5234) @​AscendLiu
  • Polar Coordinates: Fix conversion from Cartesian coordinates (#​5236, #​5231) @​CoderPM2011
  • Lollipop: Add nearest-point support (#​5237, #​5160) @​CoderPM2011
  • Ticks: Add support for custom tick line patterns (#​5239) @​oktrue
  • Avalonia: Add customizable mouse wheel event handling (#​5241, #​5240) @​oktrue
  • DataStreamer: Fix Clear(value) to reset data to the requested value (#​5245, #​5244) @​gutblender
  • Histogram: Autoscaling is no longer applied automatically after data is modified (#​5234, #​5251) @​swharden @​AscendLiu

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 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

5.1.57

  • 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

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 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

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 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

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 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

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 IMultiplot allowing users to inject their own multi-plot logic (#​4687)
  • Cookbook: Added a colors page demonstrating all colors included with ScottPlot (#​4681) @​quantfreedom

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

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

5.0.50

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

5.0.49

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

5.0.48

  • Multiplot: Extend Multiplot to support rending onto an existing surface (#​4628, #​4600)
  • User Controls: Add Multiplot to IPlotControl (#​4628, #​4600)
  • User Controls: Remove deprecated Interaction system (#​4630, #​4600)
  • Plot: Remove the PlotControl property to encourage one-way flow of control (#​4631, #​4600)
  • Controls: Update all UserInputProcessor code to support Multiplot interactions (#​4632, #​4600)
  • Multiplot: Add advanced subplot positioning features (#​4633, #​4600)
  • Multiplot: Add shared axis helper methods to facilitate syncing axis limits across subplots (#​4635, #​4600)
  • Generate: Fixed causing AddNoiseInPlace() to offset the mean of the underlying signal (#​4564) @​nightroman
  • Text: Fixed DragTo() to use the correct axis dimension (#​4587) @​claire0821
  • Rendering: Improved handling of the RenderPack inside the render loop to avoid Skia exceptions (#​4592) @​vadimart92
  • Axes: Improved support for CoordinateRect hit detection on plots with inverted axes (#​4596) @​SprinterDave
  • Axes: Improved axis rule behavior on plots using inverted axes (#​3597, #​4609) @​CoderPM2011
  • Smith Chart: New plot type for displaying impedance of signals as resistance vs. reactance on a circular axis system (#​4634, #​4578, #​41) @​CoderPM2011 @​louis1901 @​Padanian
  • Rendering: Improve support for platforms where BGRA is not the default color model (#​4648, #​4647) @​bclehmann @​ssharks
  • Legend: Made GetItems() virtual to support custom ordering logic and made Plot.Legend settable (#​4571) @​onur-akaydin
  • Controls: Improved middle-click-drag zoom rectangle support for plots using inverted axis limits (#​4573) @​xichaoqiang
  • Ticks: Improved tick placement consistency for financial plots with DateTime axes (#​4591) @​VladislavPustovarov
  • Line: Added LineOnTop and MarkersOnTop flags to control which components appear in front (#​4610) @​nullsoftware @​quantfreedom
  • Axes: Added a helper method allowing Plot.Axes.Left.RemoveTickGenerator() to quickly disable left axis tick generation (#​2875, #​4613, #​4608, #​4613)

5.0.47

  • Controls: Fix issue preventing the context menu from appearing after it was used to open a new window (#​4529) @​david3951445
  • Interactivity: Created HitablePlottableDecorator and DragablePlottableDecorator classes that wrap any IPlottable to add pixel-based mouse collision detection and drag capability to any plot type (#​4531, #​4496) @​StendProg
  • Ticks: Created a plottable for displaying multiplier notation and added the Plot.Axes.SetupMultiplierNotation() helper method for rapidly enabling it with typical options (#​4530) @​Paraplegia
  • Axes: Improve layout support for axes with multi-line axis labels (#​4535) @​CBrauer
  • Heatmap: Added Rectangle property to simplify rendering a heatmap within the edges of a user-defined rectangle in coordinate space (#​4552, #​4550) @​ecrocombe
  • Palette: Exposed ScottPlot.Palettes.Custom as an alternative to ScottPlot.Palette.FromColors() for creating palettes with user-defined collections of colors
  • Bar: Created Add.Ranges() and Add.StackedRanges() to simplify creation of stacked range charts (#​4548) @​quantfreedom @​wellcaffeinated
  • Bracket: New plot type for annotating ranges of linear lines in coordinate space (#​4547, #​1863) @​FULL69 @​bclehmann
  • Financial Charting: Improved FinancialTimeAxis tick generation behavior (#​4483, #​4551, #​4385) @​VladislavPustovarov @​quantfreedom
  • Histogram: Created Add.Histogram() which accepts a Histogram and returns a HistogramBars plottable designed for displaying continuously updated histogram counts (#​4557) @​jpgarza93
  • Legend: Added support for paring each LegendItem with its parent IPlottable to facilitate mouse interaction (#​4533) @​BambOoxX
  • Plot: Modified GetPngHtml() to add optional classContent and styleContent arguments to allow CSS style injection
  • Reporting: New ScottPlot.Reporting classes support creating multi-figure reports which may be viewed interactively or exported as HTML documents (#​4526)

5.0.46

  • Axes: Added support for displaying bitmaps as axis labels allowing rich text to be rendered using a third party package and displayed in any plot (#​4503, #​3222, #​2905) @​Liwr9537 @​CBrauer @​DaveMartel
  • DataStreamerXY: A new type of plottable for displaying streaming Y with unevenly spaced, user-defined X values (#​4507, #​4460, #​4518) @​dlampa
  • DataLogger: Added InvertX and InvertY flags to control automatic axis limit management behavior (#​4513) @​Jofstera
  • Controls: Updated mouse wheel scroll fractions so zoom-out wheel events more accurately reverse zoom-in wheel events (#​4516) @​quantfreedom
  • Candlestick: Updated FallingColor property to change both the fill and line colors with one assignment (#​4521) @​czastack
  • Interactivity: Mouse click times in double-click events no longer resets after losing focus, improving double-click behavior in WPF controls (#​4524) @​onur-akaydin
  • OpenGL: Updated GLSL version number formatting to improve rendering on some platforms (#​4519) @​onur-akaydin @​StendProg
  • Legend: Gave LegendItem a Plottable property to enable creating interactive legends which control plottable properties (#​4523, #​3842, #​4147) @​BambOoxX

5.0.45

  • Candlestick: Improved performance for plots with large numbers of candles less than one pixel wide (#​4483) @​quantfreedom @​VladislavPustovarov
  • Blazor: Added UI event handlers with names consistent with those of other controls (#​4480) @​Saklut
  • SignalConst: Improve automatic axis limit detection when X and Y data offsets are used (#​4485) @​matej-mnoucek
  • Controls: Improve interactivity behavior by resetting drag events when interactivity is disabled (#​4481) @​hljlishen
  • SignalConst: Deprecated the SignalConst type in favor of a Signal with a SignalConstSource data source (#​4492)
  • Signal: Refactored multiple signal plot and data source types for improved performance, increased customization, and better consistency (#​4492) @​StendProg
  • Text: Added a static LabelStyle.RTLSupport flag to enable support for right-to-left (RTL) languages (#​4500, #​4306) @​StendProg @​moranmono

5.0.44

  • Rendering: Prevent inversion of data area for extremely small plots (#​3607)
  • Generate: Created AddSin() and AddSinInPlace() methods to facilitate test data generation (#​3682)
  • FormsPlot: Improved the Visual Studio design time experience for users working on .NET Framework projects (#​4425, #​4362) @​CoderPM2011
  • CoordinateRange: Improve equality checking for infinite spans with reversed limits (#​4441, #​4436) @​sunefred
  • SVG: Significantly reduced the size of exported XML by preventing duplicate renders (#​4441, #​4436) @​sunefred
  • LineStyle: Added a HandDrawn flag with customizable HandDrawnJitter and HandDrawnSegmentLength to create XKCD-style plots (#​4435, #​3239) @​sdpenner
  • SignalConst: Exposed Data so users may access offset configuration settings (#​4440, #​4253) @​matej-mnoucek
  • VectorField: Added MaximumArrowLength property to allow arrow lengths to be customized (#​3763) @​hnMel
  • Signal: Reduced render artifacts for high density overlapping data by reducing pixel overlap (#​4050, #​3665) @​StendProg
  • Label: Added border radius properties to customize corner curvature of labels and plottables with label styles (#​4099)
  • Controls: Added LostFocusAction to abort mouse drags if they are interrupted by Alt+Tab or other events that lose window focus (#​4103) @​Max-i-m
  • Polygon: Improved performance and reduced anti-alias artifacts by preventing multiple overlapping drawings of identical lines (#​4141) @​HandsomeGoldenKnight
  • Title: Added FullFigureCenter flag to allow titles to be centered in the figure instead of over the data area (#​4455, #​364) @​jaguarxii
  • OHLC: Added check in initializer to force valid high/low range state (#​4454) @​CBrauer
  • WpfPlot: Re-implemented GetPlotPixelPosition() and GetCurrentPlotPixelPosition() (#​4214, #​3622) @​wellsw @​KroMignon
  • DataLogger: Narrowed the underlying data type from IList<Coordinates> to List<Coordinates> to allow RemoveRange() as seen in the cookbook (#​4460) @​Fruchtzwerg94
  • Maui: Improve visual appearance of plots during panning (#​4416, #​4417, #​4447) @​King-Taz @​KosmosWerner
  • WinUI: Improved support for Windows platforms by upgrading to the latest SkiaSharp dependency and building for windows10.0.19041 (#​4258) @​ArchieCoder @​ProgrammerGuy76 @​agneszitte @​AzureGulf @​Treppon
  • Callout: Improved automatic axis limit detection (#​4358) @​endeffects
  • Axes: Added SquareUnits(false) overload to allow restoring default axis scaling behavior (#​4366) @​cvdevol
  • Axis Lines: Add Minimum and Maximum properties to limit the size of the line along its axis (#​4368) @​nRoger-Env
  • Axes: Added Plot.Axes.NumericTicksButton() to revert changes made by DateTimeTicksBottom() (#​4438) @​Cassar17
  • Colormap: Added GetImage() to return a ScottPlot.Image of custom dimensions which may be returned as a byte array or saved to disk (#​4371)
  • Tick Generator: Added DateTimeManual for placing ticks manually on DateTime axes without having to use ToOADate() (#​4383)
  • Grid: Added Color, LineWidth, and LinePattern properties for quickly setting major line styles of primary X and Y axes grid lines (#​4384)
  • DataLogger: Exposed HasNewData to allow signaling that new renders are required after manually editing logger data (#​4470, #​4460) @​Fruchtzwerg94
  • Marker: Improved support for filled markers with opt-in outlines (#​4387)
  • Generate: Added RangeWithStep() and RangeWithCount() as more explicit alternatives to the ambiguously named Range() method
  • Scatter: Filled areas previously only respected OffsetX but now respect OffsetY too (#​4433)
  • Controls: Modified MouseDragZoom to expose sensitivity properties to improve click-drag experiments for different platforms (#​4443, #​4416) @​King-Taz @​KosmosWerner
  • Controls: Improved mouse interactivity behavior for plots with inverted axes (#​4471, #​4110) @​wi-fr
  • Population: Use deterministic randomness for horizontal spread of makers to support pixel perfect reproducibility (#​4477)

5.0.43

  • UserInputProcessor: Simplified how axis locking is achieved by adding horizontal and vertical arguments to LeftClickDragPan() and RightClickDragZoom()
  • Maui: Improved deployment pipeline so the latest ScottPlot.Maui package is always available on NuGet (#​1391) @​KosmosWerner @​King-Taz @​cosmicDustOfLightLength
  • Candlestick Plot: Exposed Data for easier access to underlying OHLC candle data (#​4385) @​quantfreedom
  • Maui: Improved cursor-driven pan and zoom on Desktop platform targets (#​4417, #​4416) @​KosmosWerner @​King-Taz
  • Candlestick Plot: Improved visibility of candles with zero price movement (#​3337) @​Lyakabynka @​bukowa
  • Ticks: Added an experimental FinancialTickGenerator for generating DateTime ticks from unevenly-spaced time data (#​4385)
  • Financial Charting: Added experimental FinancialTimeAxis plottable as an alternative to using custom axes or tick generators (#​4385) @​quantfreedom @​vladislavpweetsoft
  • Triangular Axis: Users may now Add.TriangularAxis() and use its methods to get Cartesian coordinates from points in triangular space (#​4421, #​4413, #​4424) @​manaruto
  • Bar: Exposed Rect, ErrorLines, and AxisLimits properties (#​4423) @​tiger2014
  • Axes: SquareUnits() now uses SquareZoomOut for console apps and SquarePreserveX for interactive apps (#​4422) @​King-Taz @​KosmosWerner
  • Bar: Improved support for bat plots with custom hatch patterns (#​3386)
  • Floating Axis: New plot type for displaying axes anywhere inside the data area (#​3377) @​ZTaiIT1025
  • Bar: Improved behavior of horizontal bar plots with the CenterLabel flag enabled (#​3533) @​TheFizz
  • Generate: added Sigmoidal() method for creating sample data with a sigmoidal shape

5.0.42

  • Controls: Refactor to allow the user input processor to function as IPlotControl.Reset() changes the underlying Plot (#​4404) @​Or8e4m4n

5.0.41

  • Controls: marked Interaction as Obsolete to encourage use of the newer UserInputProcessor documented in all the demo apps. Users may still activate the old system by calling myPlotControl.Interaction.Enable() (#​4322, #​4224, #​3186, #​4053)
  • Ticks: Improved automatic tick generation for axes of extremely small plots (#​4353, #​4354) @​StendProg @​Cassar17
  • CoordinateRange: Added a Center property to return the value halfway between the range boundary values (#​4316, #​4357) @​idotta
  • Multiplot: Improve support for advanced layouts and add examples to cookbook (#​4345)
  • Colormap: Added Default property to provide quick access to a customizable standard colormap (defaults to MellowRainbow)
  • Palette: Added Default property to provide quick access to a customizable standard Palette (defaults to Category10)
  • Bar: Use LineStyle and FillStyle similar to other plottables and deprecate old property names
  • Histogram: Refactored to simplify creation of creating probability curves and cumulative probability histograms (#​4287, #​4367)
  • Colormap: Refactor all ScottPlot.Colormaps to favor composition over inheritance and add extension methods to IColormap (#​4248)
  • WinUI: Improve support for .NET 8 platform targets (#​4288, #​4374) @​vilgotf
  • Scatter: Made all default strategies public to facilitate connecting line customization (#​4346)
  • Interaction: Added DoubleLeftClickBenchmark(), LeftClickDragPan(), and RightClickDragZoom() helper methods for toggling default behavior (#​4379)
  • Finance: Added Add.BackgroundText() methods to simplify the process of adding stock symbol information (#​4396, #​4395, #​4385) @​quantfreedom
  • Finance: Improve support for List<OHLC> and OHLC[] data types (#​4397)
  • Generate: Added Generate.Financial.OHLCsByMinute() to simplify creation of random financial data (#​4397)
  • DataLogger: Add Clear() to the data logging plottable ands its corresponding data source (#​4377) @​h135558
  • Cookbook: Improved recipes, reorganized chapters, and added platform switching to the website (#​4392)

5.0.40

  • DataLogger: Added Add() overloads to be consistent the original DataLogger API (#​4243, #​4114) @​drolevar @​jpgarza93
  • Fonts: Improve typeface caching to significantly improve Avalonia performance on Linux (#​3439, #​4250) @​kebox7
  • Generate: Improved RandomNumbers() to include lower boundary as described in XML docs (#​4251, #​4252) @​aespitia @​LeaFrock @​ArchieCoder
  • LinePattern: Added Name property and added support for custom patterns (#​4275, #​4289) @​CoderPM2011
  • DataSources: Created IDataSource to standardize and simplify data access, render index management, and pixel/coordinate conversion (#​3807, #​4270) @​RFBomb @​StendProg
  • LinePlot: Added CoordinateLine property (#​4277, #​4274) @​aespitia
  • Pie: Improved respect for LineStyle customizations (#​7278)
  • Pie: Improved automatic axis limit behavior for pie charts with internal slice labels (#​7278)
  • Pie: Slices now have distinct Label and LegendText properties (#​3295, #​4280) @​LeaFrock @​sterenas @​Martin12350
  • SignalXY: Fixed bug introduced in the last version that caused off-screen data to throw an ascending value exception (#​4261, #​4286) @​RFBomb @​StendProg
  • Controls: Added strong naming by signing assemblies for the WPF, Maui, and Eto controls (#​4295) @​RFBomb
  • OpenGL: Improve behavior of plots when grid lines are rendered beneath plottables (#​4298) @​StendProg
  • OpenGL: Improve support for OpenGL controls on modern .NET using platform-specific OpenTK versions (#​4301) @​StendProg
  • Coxcomb: Improved first slice orientation consistency (#​4304, #​4305) @​johndoh
  • Grid: Improved alternating fill grid appearance for live and interactive graphs (#​4302, #​4307) @​StendProg @​bradcb212
  • SignalXY: Fixed bug causing plots with inverted horizontal axes to crash under specific conditions (#​4313, #​4315) @​StendProg @​lguelat
  • CoordinateRange: Refactored to improve support for inverted ranges (#​4316) @​CoderPM2011
  • Axes: Added a Plot.Axes.TightMargins() shortcut for setting autoscale margins to tightly fit the data
  • ContourLines: New plot type for displaying lines that mark points of equal elevation given a collection of 3D points (#​4296, #​2330, #​3795, #​4326) @​jon-rizzo @​StendProg
  • Maui: Improved the .NET MAUI ScottPlot control and added quickstart documentation to the website (#​4320, #​4023, #​4013, #​4342) @​KosmosWerner @​ByteSore
  • Radar: Improved rotational direction of labels (#​4321, #​4310) @​CoderPM2011 @​bry-decelles
  • Axes: Added Plot.Axes.MarginsX() and Plot.Axes.MarginsY() for changing margins in a single axis without changing the other (#​4246)
  • Colormap: Added Colormap.FromColors() to generate colormaps using interpolated gradients between a user defined collection of colors (#​4247, #​4324)
  • Colormap: added MellowRainbow similar to Jet and Turbo but with mellow tones to improve appearance of thin lines on a white background (#​4325)
  • ScaleBar: New plot type for communicating scale as a concise alternative to the axis frame (#​4319, #​4337, #​4329) @​CoderPM2011
  • PixelLine: Added Center property (#​4335, #​4318) @​brokoli777
  • MultiPlot: New class for creating composite figures containing multiple distinct Plot figures (#​3948)
  • Plot: Deprecated GetImageHtml() in favor of GetPngHtml() and GetSvgHtml() (#​4347)

5.0.39

  • Angle: Added support for common arithmetic operators
  • PolarCoordinates: Added FromCartesian() and FromCartesian() overloads to facilitate conversion between polar and Cartesian space (#​4211) @​CoderPM2011
  • Pie: Added Rotation property (#​4211) @​CoderPM2011
  • Pie: Improved label alignment (#​4211) @​CoderPM2011
  • Pie: First slice now starts vertically (-90 degrees) instead of to the right (0 degrees) (#​4211) @​CoderPM2011
  • Generate: Random seed uses System.Random.Shared on .NET platforms where it is available (#​4217) @​LeaFrock
  • Axes: Added ClipLabel option to prevent long labels from overlapping on very small plots (#​4219) @​drolevar
  • Plot: Improved performance when adding new plot objects by reducing complexity of color palette sampling (#​4218) @​0xfded @​StendProg
  • Colormap: Added GetColor() overload to get color of an item in a collection with an option to sample from a range of the colormap
  • Markers: Added optional Colormap so marker colors can be sampled from a colormap instead of assigned manually (#​4143)
  • Angle: Added FromFraction() to produce angles represented by a fraction around the unit circle (#​4208)
  • Color: Added constructor overloads to create colors from SKColor and System.Drawing.Color (#​4209)
  • Axes: Added SetSpanX() and SetSpanY() for defining axis range size without changing the center position (#​4221)

5.0.38

  • DataLogger: Merged in numerous additional features (optional circular buffer, X and Y offset, etc.) from the experimental DataLogger (#​4085, #​4114) @​drolevar
  • SVG: Improved correctness of exported SVG files to overcome a SkiaSharp bug that sometimes results in XML missing a closing tag (#​4104, #​4121) @​KroMignon @​aespitia @​bclehmann @​DDiggs91
  • Generate: Added Range() to create a sequence of values between two numbers (#​4122, #​4119, #​4179) @​KroMignon @​StendProg
  • Rendering: Improve behavior of plots using custom scale factors in situations of repeated renders (#​4125) @​BrianAtZetica
  • Palette: Improved behavior of automatic color selection for new plottables added to the plot (#​4105)
  • Color: Added overload to allow constructing colors from hex strings (#​4170, #​4165) @​aespitia @​KroMignon @​kebox7
  • WinUI: Improved support and documentation for applications built using Uno Platform (#​4123) @​agneszitte
  • Color: Added Hue, Saturation, and Luminance properties
  • Colormap: Added Colormap.GetColormaps() to allow iterating over all available colormaps
  • Colormap: Added Colormap.GetImage() to generate a gradient image using a given colormap
  • Coordinates: Added Position and Coordinates properties (#​4185) @​blouflashdb
  • Signal: Added AlwaysUseLowDensityMode for improved anti-aliased rendering in static plots (#​4153)
  • Plot: Improved default ToString() implementation for the object returned when saving image files (#​4154)
  • Plot: Added Save() overload which detects file format from filename extension (#​4164)
  • Coordinates: Added Coordinates.Zip() for creating a Coordinates[] from distinct xs[] and ys[] arrays.
  • Lollipop: New plot type that displays values with a stem and a marker similar to a bar graph but with less visual clutter (#​4193, #​4183) @​CoderPM2011
  • Polar Axis: Added Rotation property to rotate the axis and coordinates it returns
  • Polar Axis: Added the ability to customize spoke label text (#​4188)
  • Polar Axis: Added a SetSpokes() overload that accepts string[] to create new spokes and set their label text automatically
  • Polar Axis: Replaced RegenerateSpokes() and RegenerateCircles() with SetSpokes() and SetCircles() (#​4207)
  • Grid: Added support for fill colors to highlight spans between pairs of major grid lines (#​4201, #​4022) @​CoderPM2011 @​seeingistrue
  • AxisSpan: Added IsUnderMouse() to improve API naming consistency with AxisLine (#​4150)
  • AxisLimits: Added Contains() to allow quick checking whether a point is contained by the boundaries of the axis limits (#​4161)
  • Radar: Refactored to use a PolarAxis to handle spoke and tick management and translation between polar and Cartesian space (#​4207, #​4187, #​4186, #​4055)
  • Controls: Made IPlotControl.Menu nullable so users creating their own controls are not required to create a menu system (#​4203) @​kebox7

5.0.37

  • Controls: A new IPlotControl.UserInputProcessor has been created to replace IPlotControl.Interaction which will be deprecated in a future release. The new system supports arbitrary inputs (not limited to mouse actions and key presses), offers extended ability to inject highly customizable ordered plot manipulation logic that respond to streamed inputs, and has been designed to facilitate automated UI testing. Set IPlotControl.UserInputProcessor.IsEnabled to true to opt-in to this new event processor. (#​4053, #​3186, #​3622)
  • Signal and SignalXY: Improve data source GetNearestX() accuracy (#​4019) @​StendProg
  • Maui: Created a ScottPlot.Maui.MauiPlot control to provide interactive plots in .NET Maui applications (#​4013) @​ByteSore
  • Style: Added Plot.GetStyle() and Plot.SetStyle() for applying and customizing styles in the ScottPlot.PlotStyles namespace (#​4025, #​3955, #​4037) @​StendProg @​kebox7
  • AxisLimits: Improved accuracy and performance of WithZoom() (#​4041) @​idotta
  • Documentation: Added automatically generated API documentation to the website (#​4040, #​3822)
  • Font: Improved documentation and testing for plot objects (like Legends) that use custom typefaces (#​3830, #​3825, #​4060, #​4043, #​4057) @​lasooch @​kebox7
  • Label: ScottPlot.Label has been renamed to ScottPlot.LabelStyle to better signal its purpose is to hold styling information rather than store text
  • Label: Improved support for custom horizontal alignment in multiline strings (#​4045, #​3958, #​3859) @​karlipl
  • Fonts: Improve performance when automatic best font detection is enabled (#​4049) @​zxy874175242
  • Controls: Added autoscale to default context menu (#​4053)
  • Axes: A polar plot axis can now be added with myPlot.Add.PolarAxis() and customized as seen in the cookbook (#​4055, #​3939) @​CoderPM2011
  • Axis lines and spans: Added EnableAutoscale flag to allow plottables to be ignored when Plot.Axes.AutoScale() is called (#​4069, #​4067) @​KroMignon @​andresod
  • SignalConst: Improved support for custom legend text (#​4081, #​4082) @​KroMignon @​fanshuxian
  • SignalConst: Improve accuracy of the first point in low density mode (#​4082, #​4083, #​4086, #​4083) @​StendProg @​KroMignon
  • SignalConst: Allowed markers to become visible by setting their shape without requiring users to define a non-zero size (#​4082) @​KroMignon
  • Grid: Improved performance by reducing unnecessary allocations for ticks of invisible axes (#​4087) @​kebox7
  • Ticks: Improved behavior of the numeric fixed interval tick generator to ensure the correct lowest tick is always rendered (#​4089) @​epegeot
  • Ticks: Allow the numeric fixed interval tick generator interval to be defined as a double (#​4090) @​epegeot
  • Ticks: Add a custom tick label formatter property to the numeric fixed interval tick generator (#​4090) @​epegeot
  • Ticks: Improved behavior of NumericalFixedInterval to ensure the correct lowest tick is always rendered (#​4089) @​epegeot
  • DataStreamer: Improved support for rotated plots (#​4093, #​4085) @​drolevar @​KroMignon @​Jofstera
  • Security: Removed outdated reference to System.Text.Json which contained CVE-2024-30105 (#​4095, #​4063) @​SerTetora
  • Phaser: New plot type for displaying arrows to points in polar space (#​4096, #​3939) @​CoderPM2011 @​nilsakesson
  • PlottableAdder: Exposed Plot so users can create methods that extend Plot.Add which have access to the Plot itself (#​4109, #​4107) @​DDiggs91
  • AxisManager: Improve AutoScale() support for inverted axes (#​4110) @​BrianAtZetica
  • Scatter: Added ColorPositions to allow placement of colors at specific X positions when using filled scatter plots (#​4111) @​CoderPM2011
  • SignalXY: Improved support for rotated plots and added support for XScale to compliment YScale (#​4112, #​4102) @​BrianAtZetica

5.0.36

  • Fonts: Made typeface caching thread-safe to improve support for multi-threaded environments (#​3940) @​Hawkwind250
  • Ticks: Added a custom LabelFormatter to DateTime axes which use fixed intervals (#​3936) @​Fruchtzwerg94
  • Fonts: Enabled sub-pixel text positioning for improved character placement (#​3937) @​bforlgreen
  • Axes: Improved automatic axis limit expansion for extremely large numbers (#​3930) @​CodeDevAM
  • Statistics: Added ScottPlot.Statistics.Descriptive methods Median() and Percentile()
  • Population: Added a new Population plot type for displaying collections of values (#​3944, #​3676)
  • IAxisLimitManager: Separated GetAxisLimits() into GetRangeX() and GetRangeY() for improved customization and performance (#​3946) @​drolevar
  • Experimental: Added Plottables.Experimental.DataStreamer2 plot type for displaying streaming data in a circular buffer (#​3946) @​drolevar
  • Rendering: Automatically re-render if a render invokes an event that requests it (#​3952) @​BrianAtZetica
  • SVG: File encoding now supports text containing UTF8 characters (#​3956, #​3957) @​aespitia
  • Documentation: Added a sandbox .NET API project and quickstart section to the website (#​3959, #​3824) @​aespitia
  • Color: Added ToColor() and FromColor() to simplify conversion between ScottPlot.Color and System.Drawing.Color (#​3964, ##​3953) @​aespitia
  • Console: Saved image path can be displayed by calling myPlot.SavePng('demo.png', 600, 400).ConsoleWritePath() (#​3965, #​3943) @​aespitia
  • Rendering: Improved sharpness of axis frames, tick marks, and grid lines by disabling anti-aliasing by default and added Plot.Axes.AntiAlias() so users can customize this behavior (#​3976) @​bforlgreen
  • Signal: Added support for generic data sources in read-only lists (#​3978, #​3942) @​sdpenner
  • LinearRegression: Added overload that accepts IEnumerable<Coordinates> (#​3982, #​3981) @​ANGADJEET @​CoderPM2011
  • Colormap: Added GetColors() for generating a given number of colors evenly spaced along a colormap (#​3983, #​3947) @​CoderPM2011
  • CoordinateLine: Added additional constructors for creating lines given a point and slope (#​3987, #​3986) @​aalgrou
  • DataLogger: Added Clear() and ResetMinAndMaxValues() to the data logger source class (#​3993, #​3969) @​jpgarza93
  • Controls: Improved behavior of middle-click-drag zooming over axis panels for plots using DPI scaling (#​3994) @​bforlgreen
  • Style: Added Plot.Axes.Hairline() to enable axis frames, tick marks, and grid lines to render 1px wide regardless of scale factor (#​3995) @​bforlgreen
  • Axes: Display no ticks instead of throwing an exception if automatic DateTime ticks are used with invalid ranges (#​4001) @​githubkau
  • SignalXY: Improve support for data sources containing zero-length arrays (#​4000) @​githubkau
  • CoordinateRect: Added constructor that accepts IAxes (#​4008, #​3985) @​CoderPM2011
  • CoordinateRect: Fixed an issue that caused BottomRight to return incorrect coordinates (#​4009, #​3996) @​CoderPM2011
  • Cookbook: Added a demonstration of stacked filled line plots (#​4010, #​3967) @​CoderPM2011 @​MarkG008
  • Benchmark: Improved text default alignment of double-click benchmark (#​4014) @​banncan
  • SignalXY: Improved behavior of MinRenderIndex and MaxRenderIndex (#​4011) @​StendProg
  • Project: Cut dependency on System.Runtime.InteropServices.RuntimeInformation (#​3911) @​swaitvor @​chhh
  • Legend: Added IsVisible property to LegendItem to customize visibility of items in manual legends (#​3931) @​cataclism
  • Signal: Exposed Data property setter so users can replace the ISignalSource without resetting the plottable (#​3932) @​danieljfarrell @​bclehmann
  • Heatmap: Exposed Intensities setter to allow users to replace heatmap data with a 2D array of a different size (#​3941) @​sdpenner
  • Axes: Added Plot.Axes.Link() to simplify sharing axis limits between multiple plots or plot controls (#​4003)
  • Blazor: Added automatic resizing options to the in-browser cookbook (#​3710, #​3664) @​KroMignon
  • Axis Spans: Improved visibility of extremely narrow spans (#​4017, #​3968) @​CoderPM2011
  • Generate: Added RandomNormalNumber() that returns a single value to compliment RandomNormal() which returns a collection (#​4018, #​3980) @​CoderPM2011
  • Axis Lines: Offset label according to the panel offset to improve appearance on multi-axis plots (#​1766) @​fuxinsen @​mengfanmin123

5.0.35

  • Legend: Added Plot.ShowLegend() overload that accepts an Edge for quickly adding a legend outside the data area (#​3672, #​3635)
  • Radar Plot: New plot type (also called a spider charts or star charts) for representing multi-axis data as a 2D shape on a circular axis system (#​3457, #​3780) @​bclehmann
  • Coxcomb Plot: New plot type like a pie graph where the angle of slices is constant but the radii are not (#​3457, #​3780) @​bclehmann
  • Axes: Added LabelFormatter property to DateTimeAutomatic for custom formatting of DateTime tick labels (#​3783) @​loyvsc
  • Rendering: Improve how backgrounds are drawn on on plots using a custom ScaleFactor (#​3818) @​MCF
  • Plot: Added Plot.Clear<T>() as an alias for Plot.Remove<T>() to remove all plottables of the given type (#​3820, #​3804) @​CoderPM2011
  • Axes: Added ScottPlot.AxisPanels.Experimental namespace with examples in the demo app and cookbook (#​3823) @​EricEzaM
  • Rendering: Added Plot.RenderManager.RemoveAction<T>() for easily removing specific actions from the render sequence
  • SVG: Fixed issue where plots would have a black outline in some browsers (#​3709) @​sproott @​KennyTK @​aespitia
  • Controls: Add "open in new window" to right-click menu for WinForms and WPF controls (#​3730)
  • Cookbook: Demonstrate how to achieve a frameless heatmap (#​3828) @​itsmygam3
  • Cookbook: Demonstrate Heatmap.CellAlignment to achieve heatmaps that do not extend past their boundaries (#​3806) @​FengQingYangDad
  • Signal: Improve support for datasets with no elements (#​3797)
  • Scatter: Improved line clipping when fill mode is enabled (#​3792) @​BendRocks @​CoderPM2011
  • Signal and Scatter: Added MinRenderIndex and MaxRenderIndex properties as shortcuts to those in the Data property (#​3798)
  • Scatter: Improve appearance when FillY is enabled and all data is on one side of FillYValue (#​3791) @​BendRocks
  • Axes: Added SetTicks() shortcut for quickly switching to a manual tick generator pre-loaded with the given tick positions and labels (#​3831) @​Giviruk
  • Legend: Clip the legend area so it does not flow outside the data area on extremely small plots (#​3833) @​drolevar
  • Controls: Made axis locking methods virtual inside InputBindings to facilitate custom behavior (#​3838) @​JinjieZhao
  • Fonts: Improved support for true-type font files and custom typefaces (#​3841) @​kebox7 @​bclehmann
  • Axis: Simplified strategy for achieving shared axis limits between multiple controls as seen in the demo application (#​3873) @​StendProg
  • Controls: Improved Plot.Interactions.Disable() behavior so interactivity can be restored with Plot.Interactions.Enable() (#​3879) @​StendProg @​KroMignon
  • Controls: Improved mouse zoom behavior for plots with custom scale factors (#​3887, #​3886) @​BrianAtZetica
  • Text: Improve support for text objects containing null strings (#​3892, #​3861) @​sdpenner
  • Controls: Improve behavior of Alt + Left-Click-Drag zoom rectangle (#​3896, #​3845) @​MCF
  • Label: Improve support for text positioning when custom offsets are in use (#​3898, #​3865, #​3836) @​ValeraTychov, @​bclehmann, @​VibrationAnalystCN
  • Avalonia: Enable Focusable to improve support for passing keyboard events (#​3899) @​bclehmann
  • ImageMarker: New plot type for displaying an image at a point (#​3904) @​levipara
  • SignalXY: Added GetNearestX() to the data source to help locate the point closest to the cursor's X position (#​3807) @​cataclism
  • Scatter: Added GetNearestX() to the data source to help locate the point closest to the cursor's X position (#​3807) @​MatKinPro
  • Controls: Disable middle-click-drag zooming on axes which have no data (#​3810, #​3897) @​MCF
  • DataLogger: Create Add() overloads which accept fixed-length arrays (#​3555) @​h25019871990
  • SignalXY: Ensure the final point is always drawn in high density mode (#​3812, #​3918, #​3921)
  • Axes: Improved exception messages when calling Zoom() methods with invalid scale factors (#​3813) @​KennyTK
  • WinForms: Exposed SKControl so users may bind to its events (#​3819) @​CD-SailingPerf
  • Scatter: Added support for Scale and Offset properties (#​3835) @​bukkideme
  • Axis Lines: Separated LegendText from LabelText so items may be configured separately
  • Heatmap: Exposed CellWidth and CellHeight as an alternative sizing strategy to setting Extent (#​3869) @​alexisvrignaud
  • ImageRect: New plot type that places an image inside a defined rectangle on the plot (#​3870) @​sdpenner
  • Axis Rules: Improved behavior of snapping rules and improve smoothness of panning rules (#​3919, #​3547, #​3701) @​BrianAtZetica
  • SignalXY: Improved appearance of rotated plots when low density mode is in use (#​3921) @​BrianAtZetica
  • Heatmap: Added ManualRange so users can specify a range spanned by the colormap (#​3922) @​sdpenner
  • Color: Fix infinite loop in the Color.FromARGB() overload that accepts an int argument (#​3924) @​r-j-s
  • Heatmap: Added cookbook recipe demonstrating how to use custom tick formatter (#​3844) @​mawbydp
  • DataLogger: Improved automatic axis management for loggers with empty datasets (#​3880) @​TenebrosFR
  • SignalXY: Improved interpolation of edge points when step mode is enabled (#​3894) @​seishinkouki @​StendProg
  • SignalXY: Improve behavior of off-screen single-point signals (#​3926) @​githubkau
  • SignalXY: Improved cookbook recipe demonstrating SignalXY plots with markers at each point

5.0.34

  • Axes: Added AutoScale() overloads that accept user-defined lists of plottables (#​3776) @​levipara
  • SignalConst: Properly implement range search to achieve extreme performance improvements for large datasets (#​3778) @​StendProg @​bclehmann @​Cardroid
  • Ticks: Added options for minor ticks when using DateTime axes (#​3779, #​3408) @​EricEzaM
  • Label: Improved support for measurement of labels with null strings (#​3736) @​Or8e4m4n

5.0.33

  • Markers: Reduced memory allocations and improved performance during rendering (#​3767) @​drolevar
  • Axes: Prevent exceptions for conditions where tick generation produces no ticks (#​3768) @​drolevar @​bclehmann
  • Signal: Added an experimental signal source that uses caching of binned ranges to improve performance of large datasets (#​3718) @​Cardroid
  • Label: Added Measure() overloads to facilitate label size evaluation without requiring SKPaint (#​3761) @​aespitia
  • Signal: Fix rendering artifacts for List<T> data sources introduced in version 5.0.31 (#​3765, #​3747) @​Limula-PMA
  • Crosshair: Added options for a marker to be rendered at the intersection if MarkerShape is defined
  • Label: Added FontFile and SetTypeface() to allow users to apply custom fonts (#​3722) @​kebox7
  • SignalXY: Added ConnectStyle property to mimic scatter plots and allow for step display style (#​3764) @​kareem469

5.0.32

  • Image: Added support support conversion to/from pixel value arrays to facilitate differential image analysis and testing (#​3748, #​3727)
  • Layout: Improve measurement of vertical axis tick labels (#​3736) @​ebarnard
  • Annotation: Improved positioning of annotations containing many lines (#​3749, #​3700) @​LerkLin
  • Label: Significantly improved precision of single and multi-line text measurement and alignment (#​3700)
  • Axis Line: Set default line width to 1 which also improved default appearance of crosshair (#​3752) @​fdesordi
  • Rendering: Copy the plottable list inside the render loop to facilitate plottable list modification mid-render (#​3753) @​ZSYMAX
  • Controls: Exposed ZoomRectangle.LineStyle setter to support advanced customization of middle-click-drag zoom rectangle (#​3754) @​Graat
  • Markers: Separate LineColor, LineWidth, etc. from OutlineColor, OutlineWidth, etc. to allow separate customization of line-based vs. fill-based marker shapes (#​3755, #​3716) @​CD-SailingPerf
  • Legend: Added TightHorizontalWrapping flag to allow items in horizontally oriented legends to wrap without aligning to columns (#​3758) @​MCF

5.0.31

  • Arrow: Refactored the arrow system to support multiple arrow types including user-provided ones (#​3745, #​3697)
  • Color: Colors can be created from System.Drawing colors with ScottPlot.Color.FromColor(System.Drawing.Color.Blue) (#​3745)
  • Signal and SignalXY: Added YScale parameter to display data vertically scaled by the specified fraction (#​3711, #​3708) @​feichti92
  • Generate: Added ConsecutiveHours(), ConsecutiveDays(), ConsecutiveWeekdays(), to replace Generate.DateTime methods (#​3721)

5.0.30

  • Bar: Set default line width to 1 so error bars are visible without requiring line customization (#​3741) @​Kareltje1980
  • Controls: Added a Interaction.ChangeOpposingAxesTogether flag to enable mouse actions to one axis to be applied to all axes with the same orientation (#​3729) @​rubenslkirchner
  • DataLogger: Remove requirement for new data points to contain ascending X values (#​3737) @​TenebrosFR
  • RandomWalk2D: Created ScottPlot.DataGenerators.RandomWalk2D for easily generating 2D random data with randomly changing velocity
  • Ticks: Improve tick distribution by using the TickLabelStyle font size to evaluate maximum tick label size (#​3736) @​ebarnard

5.0.29

  • Axes: Added a Plot.Axes.ContinuouslyAutoscale flag useful for plots containing continuously updating data (#​3732) @​rubenslkirchner
  • DataStreamer: Improved axis limit management behavior (#​3732) @​rubenslkirchner
  • Plot: Improved CoordinateRect() support for inverted axes (#​3731) @​Fokatu
  • Grid: Improved behavior of MajorLineWidth property
  • Cookbook: Demonstrate grid alignment with non-standard axes (#​3714) @​MichaelKuelshammer
  • Demo: Improved strategy for axis limit copying in the shared axis demo (#​3729) @​rubenslkirchner

5.0.28

  • Marker: Refactored marker system to support improved styling and the ability to use custom markers (#​3716, #​3141)
  • Interpolation: Improved control points for the first and last points of an interpolated cubic Bézier spline (#​3717) @​drolevar
  • FillY: Improved default line style (#​3726, #​3723) @​SebastianDirks @​Fruchtzwerg94
  • Plot: Added MoveToFront() and MoveToBack() to control the order plottables are rendered
  • Scatter: Disable marker outline visibility by default (#​3720)
  • Markers: Disable rendering of lines when LineWidth is 0 (#​3720)
  • Scatter: Added support for filling above and below the curve (#​3318, #​3380) @​xichaoqiang @​Diddlik @​slotinvo
  • DataStreamer: Added ContinuouslyAutoscale flag to allow the vertical range to always tightly fit the data (#​3561) @​hazenjaqdx3 @​zhhding @​Xhichn
  • Markers: Added FillOutline flag to make drawing lines on filled markers an opt-in feature

5.0.27

  • Signal: Corrected floating point error that caused points to be dropped in rare conditions (#​3665) @​mjazd
  • DataStreamer: Added an optional argument to ViewWipeRight() that sets the fraction of oldest data to hide (#​3668) @​mloppnow
  • Label: Refactored plottables to use consistently named properties. Properties such as plottable.Label.FontColor are now plottable.Label.FontColor, or plottable.LabelStyle.FontColor. Referencing obsolete property names yield build errors with messages that indicate names of the new properties to use. (#​3658, #​3666)
  • Plottables: Styling objects LabelStyle, LineStyle, MarkerStyle, etc. are now readonly. Their contents may be set, and most plottables expose shortcuts to their properties. (#​3658, #​3666)
  • Plot: Added RenderInMemory() (alias for GetImage()) so users can force a render as part of their startup process (#​3674) Boris
  • Ticks: improve appearance of rotated multiline tick labels (#​3673) @​aespitia
  • Demo: Add an example window where the legend is displayed outside the plot control (#​3672, #​3635) @​mikeKuester @​Graat
  • Demo: Fix mouse tracking logic to improve behavior of the multi-series mouseover demo (#​3680, #​3684) @​jamaa @​Graat
  • Ticks: Refined tick label measurement for improved tick spacing (#​3689)
  • Legend: Added many additional customization options and support for multiple shapes (#​3689)
  • Legend: Text appearing in the legend for many plot types has been renamed from Label to LegendText (#​3689)
  • Rendering: Added Plot.GetSvgXml() so plots can create SVG images in memory without saving to disk (#​3694) @​aespitia
  • Bar: Improved alignment of value labels on horizontal bar charts (#​3698) @​aespitia
  • Legend: Created a LegendPanel to allow legends to be displayed outside the data area (#​3672, #​3635) @​Graat @​mikeKuester
  • Axis: Prevent left axis from appearing if no plottables use it (#​3637) @​jpgarza93
  • Label: Added BorderRadius to support backgrounds and outlines with rounded edges (#​3659)
  • Axis Rules: Changed behavior of axis rules to reduce reliance on previous renders (#​3674, #​1966, #​3547)
  • Blazor: Numerous improvements to the Blazor cookbook (#​3667) @​KroMignon
  • Finance: Improve support for DateTime candlesticks before 1900 where OADate is negative (#​3678)
  • Label: Added ability to separately control background vs. text Anti-Aliasing (#​3686)
  • Ticks: Use system CultureInfo to generate numeric tick labels (#​3688, #​3687) @​xantiva @​mikeKuester
  • Plottables: Made all Render() methods virtual void to facilitate advanced customization (#​3693) @​sdhongjun
  • Function: Improve function plot performance by only calculating visible range (#​3703) @​Matthew-Chidlow

5.0.26

  • Function: Improved autoscaling behavior and respect for user-defined horizontal ranges (#​3618) @​Matthew-Chidlow
  • Function: Exposed MinX and MaxX to allow users to restrict display to a horizontal range (#​3595, #​3603) @​Matthew-Chidlow @​Dibyanshuaman
  • Axis Lines: Added ExcludeFromLegend so text can be added to axis line labels without appearing in the legend (#​3612) @​MCF
  • WPF: Added GetPlotPixelPosition() for getting mouse position relative to the figure (#​3622) @​KroMignon
  • Scatter: Upgraded the default smooth behavior to use cubic spline interpolation and exposed SmoothTension (#​3623, #​3606, #​3274, #​3566, #​3629) @​drolevar
  • Vector Field: Added a new plot type to display a collection of rooted vectors (#​3625, #​3626, #​3632, #​3630, #​3631) @​bclehmann
  • AxisLine: Improve appearance in of the key displayed in the legend (#​3627, #​3613) @​MCF
  • Crosshair: Expose VerticalLine and HorizontalLine for to allow axis-specific customization (#​3638) @​Fruchtzwerg94 @​heartacker
  • AxisLine: Added properties for faster styling including an optional TextAlignment setting (#​3640, #​3624) @​MCF
  • Axes: Improved autoscaling support behavior for plots where nonstandard axes are in use (#​3641, #​3637) @​KroMignon @​jpgarza93
  • WinUI: Added automatic display scaling detection and correction (#​3642) @​PZidlik
  • Bar: Added a CenterLabel flag to cause value labels to be displayed centered within a bar (#​3391) @​tibormarchynzoom
  • FormsPlot: Allow plots to persist through Show() and Close() events (#​3643, #​3589) @​CodeBehemoth @​bwedding @​Kruno313
  • Callout: New plot type that displays text with an arrow that points to a location on the plot (#​3650, #​3654) @​NicolasLairNET
  • Cookbook: Simplified function recipes to use static methods (#​3656, #​3655) @​abdul-muyeed
  • Demo: Created a WPF demo application to document WPF-specific topics like display scaling (#​3585, #​3622) @​KroMignon @​MagicFawkes
  • Blazor: Fixed issue causing the ScottPlot.Blazor package to install the SkiaSharp WinForms control (#​3621) @​angelofb
  • ScottPlot 4 Security: Use System.Drawing.Common version 4.7.2 to address CVE-2021-26701
  • ScottPlot 4 Package: Target supported versions of .NET Framework (4.6.2, 4.7.2, and 4.8) and .NET (6.0 and 8.0)

5.0.25

  • NuGet: Use snupkg format to include debug symbols (#​3496)
  • Scatter: Fixed indexing error affecting GetNearest() (#​3616) @​Matthew-Chidlow @​SongPing
  • Generate: Exposed a static RandomWalker instance for easily generating random walk datasets

5.0.24

  • Ticks: Modified NumericFixedInterval to add support for inverted axes (#​3567) @​Alexander-png
  • Bar plot: Improved support for labels on horizontally oriented bar plots (#​3546, #​3520) @​aespitia @​yui1227
  • Axis: Added new axis rules for edge locking, center locking, and tick snapping (#​3547) @​BrianAtZetica
  • SignalXY: Added GetNearest() for locating the data point nearest the cursor (#​3550) @​endreew
  • Demo: Added demonstration for draggable SignalXY plots which respond to the cursor (#​3550) @​endreew
  • Legend: Do not display plottables where IsVisible is false (#​3552, #​3545, #​3541) @​KroMignon, @​blahetal, @​pkstrsk
  • Annotation: Improve positioning so it is unaffected by typeface or font (#​3558) @​MCF
  • Controls: Improve render artifacts on platforms that allow concurrent rendering and UI manipulation (#​3559, #​3557) @​chjrom @​Limula-PMA
  • Controls: Improve behavior of interactions started outside the plot area (#​3571, #​3543) @​bwedding @​pkstrsk
  • Label: Prevent rendering borders when line width is zero (#​3572, #​3538) @​bwedding
  • Scatter: Added support for NaN values to display gaps in the line (#​3577, #​3276) @​drolevar @​Hub3r
  • DataLogger: Added support for NaN values to display gaps in the line (#​3577) @​drolevar
  • Finance: OHLC plots now have a Sequential mode (like candlestick plots) for displaying data without gaps (#​3590) @​oktrue
  • Plot: Added optional arguments to GetCoordinateRect() to support non-standard axes (#​3591) @​oktrue
  • Axes: Added optional arguments to Plot.Axes.AutoScale() to add support for nonstandard axes (#​3592)
  • Axis Rules: Improved Plot.Axes.SquareUnits() to support inverted axes (#​3592) @​VisMotrix
  • WinForms: Improve FormsPlot disposal so the control displays properly when re-launched (#​3593, #​3589) @​bwedding @​Kruno313
  • Signal: Added support for inverted horizontal axes (#​3594) @​Excustic
  • Axes: New helper methods Plot.Axes.InvertX(), Plot.Axes.RectifyX(), and similar for Y (#​3594)
  • Rendering: Improved performance for plot types with many lines (#​3601) @​drolevar
  • Function Plot: Improve support for functions with limited X ranges (#​3595, #​3603) @​Dibyanshuaman @​Matthew-Chidlow
  • Controls: All controls now include Reset() overloads for resetting or replacing the Plot (#​3604, #​3353) @​aniketkumar7 @​jon-rizzo
  • Scatter: The Smooth property now allows points to be connected with smooth lines (#​3606, #​3274, #​3566) @​bjschwarz @​ja1234567 @​bwedding @​CBrauer
  • Layout: Added logic to reduce the size of axes which are visible but not used by any plottable (#​3608)
  • Colorbar: Improved positioning and support for adding multiple colorbars to plots (#​3294, #​3560, #​3586) @​NateEbling @​mawbydp @​hnMel
  • Colorbar: Added a Label whic...

Description has been truncated

---
updated-dependencies:
- dependency-name: ScottPlot
  dependency-version: 5.1.59
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Sep 7, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants