Interactive plotting library for .NET
MIT License
Bot releases are visible (Hide)
AutoScale()
overloads that accept user-defined lists of plottables (#3776) @leviparaPublished by swharden 6 months ago
Measure()
overloads to facilitate label size evaluation without requiring SKPaint
(#3761) @aespitiaList<T>
data sources introduced in version 5.0.31 (#3765, #3747) @Limula-PMAMarkerShape
is definedFontFile
and SetTypeface()
to allow users to apply custom fonts (#3722) @kebox7ConnectStyle
property to mimic scatter plots and allow for step display style (#3764) @kareem469Published by swharden 6 months ago
ZoomRectangle.LineStyle
setter to support advanced customization of middle-click-drag zoom rectangle (#3754) @GraatLineColor
, LineWidth
, etc. from OutlineColor
, OutlineWidth
, etc. to allow separate customization of line-based vs. fill-based marker shapes (#3755, #3716) @CD-SailingPerfTightHorizontalWrapping
flag to allow items in horizontally oriented legends to wrap without aligning to columns (#3758) @MCFPublished by swharden 6 months ago
ScottPlot.Color.FromColor(System.Drawing.Color.Blue)
(#3745)YScale
parameter to display data vertically scaled by the specified fraction (#3711, #3708) @feichti92ConsecutiveHours()
, ConsecutiveDays()
, ConsecutiveWeekdays()
, to replace Generate.DateTime
methods (#3721)Published by swharden 6 months ago
Interaction.ChangeOpposingAxesTogether
flag to enable mouse actions to one axis to be applied to all axes with the same orientation (#3729) @rubenslkirchnerScottPlot.DataGenerators.RandomWalk2D
for easily generating 2D random data with randomly changing velocityTickLabelStyle
font size to evaluate maximum tick label size (#3736) @ebarnardPublished by swharden 6 months ago
Plot.Axes.ContinuouslyAutoscale
flag useful for plots containing continuously updating data (#3732) @rubenslkirchnerCoordinateRect()
support for inverted axes (#3731) @FokatuMajorLineWidth
propertyPublished by swharden 6 months ago
MoveToFront()
and MoveToBack()
to control the order plottables are renderedLineWidth
is 0
(#3720)ContinuouslyAutoscale
flag to allow the vertical range to always tightly fit the data (#3561) @hazenjaqdx3 @zhhding @XhichnFillOutline
flag to make drawing lines on filled markers an opt-in featurePublished by swharden 6 months ago
ViewWipeRight()
that sets the fraction of oldest data to hide (#3668) @mloppnowplottable.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)LabelStyle
, LineStyle
, MarkerStyle
, etc. are now readonly. Their contents may be set, and most plottables expose shortcuts to their properties. (#3658, #3666)RenderInMemory()
(alias for GetImage()
) so users can force a render as part of their startup process (#3674) BorisLabel
to LegendText
(#3689)Plot.GetSvgXml()
so plots can create SVG images in memory without saving to disk (#3694) @aespitiaLegendPanel
to allow legends to be displayed outside the data area (#3672, #3635) @Graat @mikeKuesterBorderRadius
to support backgrounds and outlines with rounded edges (#3659)CultureInfo
to generate numeric tick labels (#3688, #3687) @xantiva @mikeKuesterRender()
methods virtual void
to facilitate advanced customization (#3693) @sdhongjunPublished by swharden 6 months ago
MinX
and MaxX
to allow users to restrict display to a horizontal range (#3595, #3603) @Matthew-Chidlow @DibyanshuamanExcludeFromLegend
so text can be added to axis line labels without appearing in the legend (#3612) @MCFGetPlotPixelPosition()
for getting mouse position relative to the figure (#3622) @KroMignonSmoothTension
(#3623, #3606, #3274, #3566, #3629) @drolevarVerticalLine
and HorizontalLine
for to allow axis-specific customization (#3638) @Fruchtzwerg94 @heartackerTextAlignment
setting (#3640, #3624) @MCFCenterLabel
flag to cause value labels to be displayed centered within a bar (#3391) @tibormarchynzoomShow()
and Close()
events (#3643, #3589) @CodeBehemoth @bwedding @Kruno313ScottPlot.Blazor
package to install the SkiaSharp WinForms control (#3621) @angelofbPublished by swharden 7 months ago
GetNearest()
(#3616) @Matthew-Chidlow @SongPingRandomWalker
instance for easily generating random walk datasetsPublished by swharden 7 months ago
NumericFixedInterval
to add support for inverted axes (#3567) @Alexander-pngGetNearest()
for locating the data point nearest the cursor (#3550) @endreewSignalXY
plots which respond to the cursor (#3550) @endreewIsVisible
is false
(#3552, #3545, #3541) @KroMignon, @blahetal, @pkstrskNaN
values to display gaps in the line (#3577, #3276) @drolevar @Hub3rNaN
values to display gaps in the line (#3577) @drolevarSequential
mode (like candlestick plots) for displaying data without gaps (#3590) @oktrueGetCoordinateRect()
to support non-standard axes (#3591) @oktruePlot.Axes.AutoScale()
to add support for nonstandard axes (#3592)Plot.Axes.SquareUnits()
to support inverted axes (#3592) @VisMotrixFormsPlot
disposal so the control displays properly when re-launched (#3593, #3589) @bwedding @Kruno313Plot.Axes.InvertX()
, Plot.Axes.RectifyX()
, and similar for Y (#3594)Reset()
overloads for resetting or replacing the Plot
(#3604, #3353) @aniketkumar7 @jon-rizzoSmooth
property now allows points to be connected with smooth lines (#3606, #3274, #3566) @bjschwarz @ja1234567 @bwedding @CBrauerLabel
which users can customize to display an optional title (#3611) @mawbydpMinRenderIndex
and MaxRenderIndex
to limit display to a portion of the data (#3614, #3308) @wellswPublished by swharden 7 months ago
ShowLegend()
overload that does not override the current Orientation
(#3450) @aespitiaPlot.Grid
instead of GetDefaultGrid()
Plot.Style.ColorLegend()
is deprecated. Access Plot.Legend
properties directly as seen in the cookbook.Plot.Style.ColorAxes()
has moved to Plot.Axes.Color()
Plot.Style.AxisFrame()
has moved to Plot.Axes.Frame()
Plot.Style.SetBestFonts()
has moved to Plot.Font.Automatic()
Plot.Grid
with axis-specific styling options as seen in the cookbook (#3291, #3293) @bjschwarz, @PaxITISOpacity
and AlphaMap
properties to enhance transparency customization (#3499, #3349) @BrianAtZeticadouble.NaN
are now displayed as transparent cells (#3499, #3349) @BrianAtZeticaOffsetX
and OffsetY
properties for adjusting text position in pixel units (#3506) @jamaaMinimumTickSpacing
, TickDensity
, and TargetTickCount
properties to the automatic tick generator (see Cookbook)Published by swharden 7 months ago
Published by swharden 7 months ago
GetPixel()
behavior when a custom ScaleFactor
is in use (#3327) @MCFAddSeparator()
to facilitate creation of custom context menus (#3342) @MCFWipe
view to prevent race conditions when displaying live data (#3352) @drolevarRandomNormalSample()
behavior by fixing an off-by-one indexing error @DominicBeerLabel
property to allow a collection of bars to be displayed as a single item in the legend (#3375) @fhannan-tiLineWidth
, LineColor
, and FillColor
shortcut propertiesLighten()
and Darken()
properties (#3387, #3390) @KroMignonToHSL()
to return improved Hue, Saturation and Luminosity values (#3390) @KroMignonRemove()
overloads for Axes, Panels, and Grids (#3402, #3360) @Excustic, @redrabbit007, @csbebetter, @xichaoqiangPlot.FigureBackground
is now Plot.FigureBackground.Color
(and same with DataBackground
)Plot.FigureBackground.Image
and Plot.DataBackground.Image
can be used to add a background image to plots (#3406, #3405) @unsigned-ruLineSpacing
property to allow manually defining line height in multi-line labels (#3415, #3371) @NicolasLairNETFlipHorizontally
and FlipVertically
properties (#3418, #3419) @BrianAtZeticaExtent
is provided by the user (#3434, #3419) @BrianAtZeticaSmooth
property do render anti-aliased images (#3419) @BrianAtZeticaScroll
view mode (#3430, #3429) @KroMignonMixWith()
and related methods to facilitate color mixing and creation of color gradients (#3443, #3441) @KroMignonDonutFraction
property to enable donut charts (#3447, #3438) @aespitia, @Prototipo-Erick-SantanderScaleFactor
is now a double
for simplified assignment (#3454, #3455) @MCFAdd.ScatterLine()
method creates a scatter plot with a line only and no markers (#3462, #3452) @MCFAdd.ScatterPoints()
method creates a scatter plot with markers only and no line (#3462, #3452) @MCFGetCoordinateRect()
now returns dimensions that respect ScaleFactor
(#3471) @MCFMeasure()
overloads to facilitate measuring arbitrary strings without modifying the label text (#3474, #3473, #3458) @aespitia @David-A-BlankenshipPlot.Style.SetBestFonts()
is used (#3440) @edwwsw @yui1227Axes
where TickLabelStyle.IsVisible
is false
Label
property to allow values to be displayed above bars (#3477) @DouglasWattPlot.Axes.SquareUnits()
helper method for adding an axis rule that enforces equal axis scales (#3451)Published by swharden 7 months ago
Published by swharden 9 months ago
EnableRendering
to facilitate render locking in async environments (#3264, #3213, #3095) Thanks @kagerouttepaso
LabelOppositeAxis
property and created dedicated cookbook page (#3275) Thanks Lyakabynka
AddRectangle()
now accepts more input types (#3263) Thanks @enumer
IMinorTickGenerator
to allow users to inject their own logic for placing minor ticksAdd.Ellipse()
and Add.Circle()
to place closed curves on plots (#3277, #3287) Thanks @hockerschwan
Plot.Remove()
overloads for removing all plottables of the given type (#3296, #3296) Thanks @DerekGooding
Plot.Remove()
overloads for removing plottables matching specific criteria (#3296, #3297) Thanks @KroMignon
Plot.GetPlottables()
overloads to facilitate iterating over plottables of a specific typePlot.GetPixel()
overload for improved support on multi-axis plots (#3306) Thanks @MCF
Plot.Add.HorizontalSpan()
and Plot.Add.VerticalSpan()
methods for shading axis ranges (#3307) Thanks @erikjl
DateTimeTicks(Edge.Bottom)
in favor of DateTimeTicksBottom()
which now returns the created axis.Plot.Add.Markers()
to display a collection of marker positions all using the same style (#3283)Plot.Axes.Remove()
to allow users to remove additional axes they may have added (#3288) Thanks Felix
IAxisManager
to IAxisLimitManager
to disambiguate it from the AxisManager
class (#3289)Save()
methods used to return the saved file path as a string
but now they return a SavedImageInfo
with a Path
property and additional information (#3314)Published by swharden 9 months ago
ConnectStyle
to enable step display mode (#3242) Thanks @NoahSigl
Plot.Add.Polygon()
now accepts generic type lists and arrays (#3244) Thanks howhowone_23
RandomNumber()
and RandomNumbers()
overloadsRandomOHLCs()
overload that accepts a starting DateTime
(#3254) Thanks @CBrauer
Data
has been renamed to DataSource
(#3260)Data
has been renamed to DataSource
(#3260)AutoScaleExpand()
to zoom out to fit data only if necessary (#3259)Plot.Style.ColorLegend()
for quick customization of legend colors (#3247)Plot.Add.Palette
instead of Plot.Palette
.ShowLegend()
overload that accepts manually created legend itemsLinePattern
property for customizing line stylePublished by swharden 9 months ago
Published by swharden 9 months ago
Bar
collections to the plot (#3231)Published by swharden 9 months ago
MinimumIndex
and MaximumIndex
for partial array rendering (#3227)OffsetX
and OffsetY
for for applying a fixed offset in coordinate space (#3227)