OxyPlot.Series.StairStepSeries.ps1
Set-StrictMode -Version 3 <# .SYNOPSIS Represents a series for stair step graphs. .PARAMETER Parent Gets the parent model of the element. .PARAMETER ItemsSource Sets the items source. The default is null. .PARAMETER CanTrackerInterpolatePoints Sets a value indicating whether the tracker can interpolate points. .PARAMETER DataFieldX Sets the data field X. The default is null. .PARAMETER DataFieldY Sets the data field Y. The default is null. .PARAMETER Mapping Sets the delegate used to map from OxyPlot.Series.ItemsSeries.ItemsSource to the OxyPlot.Series.DataPointSeries.ActualPoints. The default is null. Example: series1.Mapping = item => new DataPoint(((MyType)item).Time,((MyType)item).Value); .PARAMETER Points Gets the list of points. .PARAMETER ActualPoints Gets the list of points that should be rendered. .PARAMETER Background Sets the background color of the series. The default is OxyColors.Undefined. This property defines the background color in the area defined by the x and y axes used by this series. .PARAMETER IsVisible Sets a value indicating whether this series is visible. The default is true. .PARAMETER Title Sets the title of the series. The default is null. .PARAMETER RenderInLegend Sets a value indicating whether the series should be rendered in the legend. The default is true. .PARAMETER TrackerFormatString Sets a format string used for the tracker. The default depends on the series. The arguments for the format string may be different for each type of series. See the documentation. .PARAMETER TrackerKey Sets the key for the tracker to use on this series. The default is null. This key may be used by the plot view to show a custom tracker for the series. .PARAMETER VerticalStrokeThickness Sets the stroke thickness of the vertical line segments. Set the value to NaN to use the StrokeThickness property for both horizontal and vertical segments. Using the VerticalStrokeThickness property will have a small performance hit. .PARAMETER VerticalLineStyle Sets the line style of the vertical line segments. .PARAMETER MaxX Sets the maximum x-coordinate of the dataset. .PARAMETER MaxY Sets the maximum y-coordinate of the dataset. .PARAMETER MinX Sets the minimum x-coordinate of the dataset. .PARAMETER MinY Sets the minimum y-coordinate of the dataset. .PARAMETER XAxis Gets the x-axis. .PARAMETER XAxisKey Sets the x-axis key. The default is null. .PARAMETER YAxis Gets the y-axis. .PARAMETER YAxisKey Sets the y-axis key. The default is null. .PARAMETER IsXMonotonic Sets a value indicating whether the X coordinate of all data point increases monotonically. .PARAMETER WindowStartIndex Sets the last visible window start position in the data points collection. .PARAMETER Color Sets the color of the curve. .PARAMETER BrokenLineColor Sets the color of the broken line segments. The default is OxyPlot.OxyColors.Undefined. Set it to OxyPlot.OxyColors.Automatic if it should follow the OxyPlot.Series.LineSeries.Color. Add DataPoint.Undefined in the Points collection to create breaks in the line. .PARAMETER BrokenLineStyle Sets the broken line style. The default is OxyPlot.LineStyle.Solid. .PARAMETER BrokenLineThickness Sets the broken line thickness. The default is 0 (no line). .PARAMETER Dashes Sets the dash array for the rendered line (overrides OxyPlot.Series.LineSeries.LineStyle). The default is null. If this is not null it overrides the OxyPlot.Series.LineSeries.LineStyle property. .PARAMETER Decimator Sets the decimator. The decimator can be used to improve the performance of the rendering. See the example. .PARAMETER LabelFormatString Sets the label format string. The default is null (no labels). .PARAMETER LabelMargin Sets the label margins. The default is 6. .PARAMETER LineJoin Sets the line join. The default is OxyPlot.LineJoin.Bevel. .PARAMETER LineStyle Sets the line style. The default is OxyPlot.LineStyle.Automatic. .PARAMETER LineLegendPosition Sets a value specifying the position of a legend rendered on the line. The default is LineLegendPosition.None. .PARAMETER MarkerFill Sets the marker fill color. The default is OxyPlot.OxyColors.Automatic. .PARAMETER MarkerOutline Sets the a custom polygon outline for the markers. Set OxyPlot.Series.LineSeries.MarkerType to OxyPlot.MarkerType.Custom to use this property. The default is null. .PARAMETER MarkerResolution Sets the marker resolution. The default is 0. .PARAMETER MarkerSize Sets the size of the marker. The default is 3. .PARAMETER MarkerStroke Sets the marker stroke. The default is OxyColors.Automatic. .PARAMETER MarkerStrokeThickness Sets the marker stroke thickness. The default is 2. .PARAMETER MarkerType Sets the type of the marker. The default is MarkerType.None. If MarkerType.Custom is used, the MarkerOutline property must be specified. .PARAMETER MinimumSegmentLength Sets the minimum length of the segment. Increasing this number will increase performance, but make the curve less accurate. The default is 2. .PARAMETER Smooth Sets a value indicating whether this OxyPlot.Series.DataPointSeries is smooth. .PARAMETER StrokeThickness Sets the thickness of the curve. .PARAMETER ActualColor Gets the actual color. .PARAMETER ActualMarkerFill Gets the actual marker fill color. .PARAMETER ActualLineStyle Gets the actual line style. .PARAMETER ActualDashArray Gets the actual dash array for the line. .PARAMETER SmoothedPoints Gets the smoothed points. .PARAMETER Font Sets the font. The default is null (use OxyPlot.PlotModel.DefaultFont. If the value is null, the DefaultFont of the parent PlotModel will be used. .PARAMETER FontSize Sets the size of the font. The default is double.NaN (use OxyPlot.PlotModel.DefaultFontSize). If the value is NaN, the DefaultFontSize of the parent PlotModel will be used. .PARAMETER FontWeight Sets the font weight. The default is FontWeights.Normal. .PARAMETER PlotModel Gets the parent OxyPlot.PlotElement.PlotModel. .PARAMETER Tag Sets an arbitrary object value that can be used to store custom information about this plot element. The default is null. This property is analogous to Tag properties in other Microsoft programming models. Tag is intended to provide a pre-existing property location where you can store some basic custom information about any PlotElement without requiring you to subclass an element. .PARAMETER TextColor Sets the color of the text. The default is OxyColors.Automatic (use OxyPlot.PlotModel.TextColor). If the value is OxyColors.Automatic, the TextColor of the parent PlotModel will be used. .PARAMETER ToolTip Sets the tool tip. The default is null. .PARAMETER ActualFont Gets the actual font. .PARAMETER ActualFontSize Gets the actual size of the font. .PARAMETER ActualFontWeight Gets the actual font weight. .PARAMETER ActualTextColor Gets the actual color of the text. .PARAMETER ActualCulture Gets the actual culture. The culture is defined in the parent PlotModel. .PARAMETER Selectable Sets a value indicating whether this element can be selected. The default is true. .PARAMETER SelectionMode Sets the selection mode of items in this element. The default is SelectionMode.All. This is only used by the select/unselect functionality, not by the rendering. .PARAMETER ActualSelectedColor Gets the actual selection color. .PARAMETER InputObject Sets the source of the data set. .PARAMETER X Sets the column X of the data set. .PARAMETER InputObject Sets the source of the data set. .PARAMETER Y Sets the column Y of the data set. .PARAMETER Group Specifies groups to which each element of the data set belongs. If this parameter is set, the data set will be grouped by these values, and multiple series will be produced for each group. .PARAMETER XName Specifies a property name of the input objects to be assigned to the column X of the data set. .PARAMETER YName Specifies a property name of the input objects to be assigned to the column Y of the data set. .PARAMETER GroupName Specifies a property name of the input objects to be treated as groups. If this parameter is set, the data set will be grouped by the values of this property, and multiple series will be produced for each group. .PARAMETER GroupingKeys Specifies effective groups and these order. This option is useful when you will select groups, or specify the order of the groups shown in the legend. .PARAMETER Options Sets properties of the object. .PARAMETER Style Sets a style of the object. .PARAMETER AddTo Specifies a plot model to which the object will be added. .INPUTS You can send any object to the cmdlet as the source of the data set. #> function New-OxyStairStepSeries { [cmdletbinding()] [OutputType([OxyPlot.Series.StairStepSeries[]], [void])] param( [Parameter(ValueFromPipeline=$true)] [object]$InputObject, [object[]]$X = @(), [object[]]$Y = @(), [string[]]$Group = @(), [string]$XName, [string]$YName, [string]$GroupName, [string[]]$GroupingKeys = @(), [double]$VerticalStrokeThickness, [OxyPlot.LineStyle]$VerticalLineStyle, [ValidatePattern('AliceBlue|AntiqueWhite|Aqua|Aquamarine|Automatic|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGray|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|Goldenrod|Gray|Green|GreenYellow|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGray|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquamarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Undefined|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen|(#?[0-9a-f]{1,8})')][string]$Color, [ValidatePattern('AliceBlue|AntiqueWhite|Aqua|Aquamarine|Automatic|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGray|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|Goldenrod|Gray|Green|GreenYellow|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGray|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquamarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Undefined|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen|(#?[0-9a-f]{1,8})')][string]$BrokenLineColor, [OxyPlot.LineStyle]$BrokenLineStyle, [double]$BrokenLineThickness, [double[]]$Dashes, [System.Action[System.Collections.Generic.List[OxyPlot.ScreenPoint],System.Collections.Generic.List[OxyPlot.ScreenPoint]]]$Decimator, [string]$LabelFormatString, [double]$LabelMargin, [OxyPlot.LineJoin]$LineJoin, [OxyPlot.LineStyle]$LineStyle, [OxyPlot.Series.LineLegendPosition]$LineLegendPosition, [ValidatePattern('AliceBlue|AntiqueWhite|Aqua|Aquamarine|Automatic|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGray|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|Goldenrod|Gray|Green|GreenYellow|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGray|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquamarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Undefined|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen|(#?[0-9a-f]{1,8})')][string]$MarkerFill, [OxyPlot.ScreenPoint[]]$MarkerOutline, [int]$MarkerResolution, [double]$MarkerSize, [ValidatePattern('AliceBlue|AntiqueWhite|Aqua|Aquamarine|Automatic|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGray|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|Goldenrod|Gray|Green|GreenYellow|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGray|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquamarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Undefined|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen|(#?[0-9a-f]{1,8})')][string]$MarkerStroke, [double]$MarkerStrokeThickness, [OxyPlot.MarkerType]$MarkerType, [double]$MinimumSegmentLength, [bool]$Smooth, [double]$StrokeThickness, [bool]$CanTrackerInterpolatePoints, [string]$DataFieldX, [string]$DataFieldY, [System.Func[System.Object,OxyPlot.DataPoint]]$Mapping, [double]$MaxX, [double]$MaxY, [double]$MinX, [double]$MinY, [string]$XAxisKey, [string]$YAxisKey, [System.Collections.IEnumerable]$ItemsSource, [ValidatePattern('AliceBlue|AntiqueWhite|Aqua|Aquamarine|Automatic|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGray|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|Goldenrod|Gray|Green|GreenYellow|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGray|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquamarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Undefined|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen|(#?[0-9a-f]{1,8})')][string]$Background, [bool]$IsVisible, [string]$Title, [bool]$RenderInLegend, [string]$TrackerFormatString, [string]$TrackerKey, [string]$Font, [double]$FontSize, [double]$FontWeight, [System.Object]$Tag, [ValidatePattern('AliceBlue|AntiqueWhite|Aqua|Aquamarine|Automatic|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGray|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|Goldenrod|Gray|Green|GreenYellow|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGray|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquamarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Undefined|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen|(#?[0-9a-f]{1,8})')][string]$TextColor, [string]$ToolTip, [bool]$Selectable, [OxyPlot.SelectionMode]$SelectionMode, [OxyPlot.Model]$Parent, [hashtable]$Options = @{}, [string]$Style = "default", [OxyPlot.PlotModel]$AddTo ) begin { if (!(Test-OxyStyleName $Style)) { Write-Error "Unknown style: '$Style'" return } $info = [PSCustomObject]@{ XAxisTitle = "X" YAxisTitle = "Y" XDataType = $null YDataType = $null GroupName = $GroupName CategoryNames = @() CategoryTitle = $null } if ($PSBoundParameters.ContainsKey("XName")) { $info.XAxisTitle = $XName } if ($PSBoundParameters.ContainsKey("YName")) { $info.YAxisTitle = $YName } $XData = New-Object Collections.Generic.List[object] $YData = New-Object Collections.Generic.List[object] $GroupData = New-Object Collections.Generic.List[string] Set-StrictMode -Off } process { if ($InputObject -ne $null) { if ($PSBoundParameters.ContainsKey("XName")) { $XData.Add($InputObject.$XName) } if ($PSBoundParameters.ContainsKey("YName")) { $YData.Add($InputObject.$YName) } if ($PSBoundParameters.ContainsKey("GroupName")) { $GroupData.Add($InputObject.$GroupName) } } } end { if ($XData.Count -gt 0 -and $X.Count -gt 0) { Write-Error "Data set of 'X' is given in two ways"; return } if ($YData.Count -gt 0 -and $Y.Count -gt 0) { Write-Error "Data set of 'Y' is given in two ways"; return } if ($GroupData.Count -gt 0 -and $Group.Count -gt 0) { Write-Error "Data set of 'Group' is given in two ways"; return } $XData.AddRange($X) $YData.AddRange($Y) $GroupData.AddRange($Group) if ($GroupData.Count -gt 0) { $groups = @{} foreach ($e in $GroupData) { $groups[$e] = 1 } if ($GroupKeys.Count -eq 0) { $groupKeys = $groups.Keys | Sort } $grouping = $true } else { $groupKeys = @("dummy") $grouping = $false } $dataCount = $XData.Count foreach ($group in $groupKeys) { $series = New-Object OxyPlot.Series.StairStepSeries if ($grouping) { $series.Title = $group } foreach ($key in $Options.Keys) { $series.$key = $Options[$key] } if ($PSBoundParameters.ContainsKey('VerticalStrokeThickness')) { $series.VerticalStrokeThickness = $VerticalStrokeThickness } if ($PSBoundParameters.ContainsKey('VerticalLineStyle')) { $series.VerticalLineStyle = $VerticalLineStyle } if ($PSBoundParameters.ContainsKey('Color')) { $series.Color = New-OxyColor $Color } if ($PSBoundParameters.ContainsKey('BrokenLineColor')) { $series.BrokenLineColor = New-OxyColor $BrokenLineColor } if ($PSBoundParameters.ContainsKey('BrokenLineStyle')) { $series.BrokenLineStyle = $BrokenLineStyle } if ($PSBoundParameters.ContainsKey('BrokenLineThickness')) { $series.BrokenLineThickness = $BrokenLineThickness } if ($PSBoundParameters.ContainsKey('Dashes')) { $series.Dashes = $Dashes } if ($PSBoundParameters.ContainsKey('Decimator')) { $series.Decimator = $Decimator } if ($PSBoundParameters.ContainsKey('LabelFormatString')) { $series.LabelFormatString = $LabelFormatString } if ($PSBoundParameters.ContainsKey('LabelMargin')) { $series.LabelMargin = $LabelMargin } if ($PSBoundParameters.ContainsKey('LineJoin')) { $series.LineJoin = $LineJoin } if ($PSBoundParameters.ContainsKey('LineStyle')) { $series.LineStyle = $LineStyle } if ($PSBoundParameters.ContainsKey('LineLegendPosition')) { $series.LineLegendPosition = $LineLegendPosition } if ($PSBoundParameters.ContainsKey('MarkerFill')) { $series.MarkerFill = New-OxyColor $MarkerFill } if ($PSBoundParameters.ContainsKey('MarkerOutline')) { $series.MarkerOutline = $MarkerOutline } if ($PSBoundParameters.ContainsKey('MarkerResolution')) { $series.MarkerResolution = $MarkerResolution } if ($PSBoundParameters.ContainsKey('MarkerSize')) { $series.MarkerSize = $MarkerSize } if ($PSBoundParameters.ContainsKey('MarkerStroke')) { $series.MarkerStroke = New-OxyColor $MarkerStroke } if ($PSBoundParameters.ContainsKey('MarkerStrokeThickness')) { $series.MarkerStrokeThickness = $MarkerStrokeThickness } if ($PSBoundParameters.ContainsKey('MarkerType')) { $series.MarkerType = $MarkerType } if ($PSBoundParameters.ContainsKey('MinimumSegmentLength')) { $series.MinimumSegmentLength = $MinimumSegmentLength } if ($PSBoundParameters.ContainsKey('Smooth')) { $series.Smooth = $Smooth } if ($PSBoundParameters.ContainsKey('StrokeThickness')) { $series.StrokeThickness = $StrokeThickness } if ($PSBoundParameters.ContainsKey('CanTrackerInterpolatePoints')) { $series.CanTrackerInterpolatePoints = $CanTrackerInterpolatePoints } if ($PSBoundParameters.ContainsKey('DataFieldX')) { $series.DataFieldX = $DataFieldX } if ($PSBoundParameters.ContainsKey('DataFieldY')) { $series.DataFieldY = $DataFieldY } if ($PSBoundParameters.ContainsKey('Mapping')) { $series.Mapping = $Mapping } if ($PSBoundParameters.ContainsKey('MaxX')) { $series.MaxX = $MaxX } if ($PSBoundParameters.ContainsKey('MaxY')) { $series.MaxY = $MaxY } if ($PSBoundParameters.ContainsKey('MinX')) { $series.MinX = $MinX } if ($PSBoundParameters.ContainsKey('MinY')) { $series.MinY = $MinY } if ($PSBoundParameters.ContainsKey('XAxisKey')) { $series.XAxisKey = $XAxisKey } if ($PSBoundParameters.ContainsKey('YAxisKey')) { $series.YAxisKey = $YAxisKey } if ($PSBoundParameters.ContainsKey('ItemsSource')) { $series.ItemsSource = $ItemsSource } if ($PSBoundParameters.ContainsKey('Background')) { $series.Background = New-OxyColor $Background } if ($PSBoundParameters.ContainsKey('IsVisible')) { $series.IsVisible = $IsVisible } if ($PSBoundParameters.ContainsKey('Title')) { $series.Title = $Title } if ($PSBoundParameters.ContainsKey('RenderInLegend')) { $series.RenderInLegend = $RenderInLegend } if ($PSBoundParameters.ContainsKey('TrackerFormatString')) { $series.TrackerFormatString = $TrackerFormatString } if ($PSBoundParameters.ContainsKey('TrackerKey')) { $series.TrackerKey = $TrackerKey } if ($PSBoundParameters.ContainsKey('Font')) { $series.Font = $Font } if ($PSBoundParameters.ContainsKey('FontSize')) { $series.FontSize = $FontSize } if ($PSBoundParameters.ContainsKey('FontWeight')) { $series.FontWeight = $FontWeight } if ($PSBoundParameters.ContainsKey('Tag')) { $series.Tag = $Tag } if ($PSBoundParameters.ContainsKey('TextColor')) { $series.TextColor = New-OxyColor $TextColor } if ($PSBoundParameters.ContainsKey('ToolTip')) { $series.ToolTip = $ToolTip } if ($PSBoundParameters.ContainsKey('Selectable')) { $series.Selectable = $Selectable } if ($PSBoundParameters.ContainsKey('SelectionMode')) { $series.SelectionMode = $SelectionMode } if ($PSBoundParameters.ContainsKey('Parent')) { $series.Parent = $Parent } for ($i = 0; $i -lt $dataCount; ++$i) { if ($grouping -and $GroupData[$i] -ne $group) { continue } if ($i -lt $XData.Count) { $XElement = $XData[$i] } else { $XElement = $null } if ($i -lt $YData.Count) { $YElement = $YData[$i] } else { $YElement = $null } Add-OxyLineSeriesPoint $series $XElement $YElement } if ($XData.Count -gt 0) { $info.XDataType = $XData[0].GetType() } if ($YData.Count -gt 0) { $info.YDataType = $YData[0].GetType() } $series = $series | Add-Member -PassThru NoteProperty _Info $info Apply-OxyStyle $series $Style $MyInvocation if ($AddTo -ne $null) { Add-OxyObjectToPlotModel $series $AddTo -NoRefresh } else { $series } } if ($AddTo -ne $null) { $AddTo.InvalidatePlot($true) } } } |