Releases: ScottPlot/ScottPlot
Releases · ScottPlot/ScottPlot
ScottPlot 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
ScottPlot 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 requiringSKPaint
(#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
andSetTypeface()
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
ScottPlot 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. fromOutlineColor
,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
ScottPlot 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 replaceGenerate.DateTime
methods (#3721)
ScottPlot 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
ScottPlot 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
ScottPlot 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()
andMoveToBack()
to control the order plottables are rendered - Scatter: Disable marker outline visibility by default (#3720)
- Markers: Disable rendering of lines when
LineWidth
is0
(#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
ScottPlot 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 nowplottable.Label.FontColor
, orplottable.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 forGetImage()
) 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
toLegendText
(#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()
methodsvirtual void
to facilitate advanced customization (#3693) @sdhongjun - Function: Improve function plot performance by only calculating visible range (#3703) @Matthew-Chidlow
ScottPlot 5.0.26
- Function: Improved autoscaling behavior and respect for user-defined horizontal ranges (#3618) @Matthew-Chidlow
- Function: Exposed
MinX
andMaxX
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
andHorizontalLine
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()
andClose()
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)
ScottPlot 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