OxyPlot.Series.HeatMapSeries.ps1

Set-StrictMode -Version 3

<#
.SYNOPSIS
 
Represents a heat map.
 
.PARAMETER Parent
 
Gets the parent model of the element.
 
.PARAMETER X0
Sets the x-coordinate of the elements at index [0,*] in the data set.
 
.PARAMETER X1
Sets the x-coordinate of the mid point for the elements at index [m-1,*] in the data set.
 
.PARAMETER Y0
Sets the y-coordinate of the mid point for the elements at index [*,0] in the data set.
 
.PARAMETER Y1
Sets the y-coordinate of the mid point for the elements at index [*,n-1] in the data set.
 
.PARAMETER Data
Sets the data array.
 
Note that the indices of the data array refer to [x,y].
The first dimension is along the x-axis.
The second dimension is along the y-axis.
Remember to call the OxyPlot.Series.HeatMapSeries.Invalidate method if the contents of the OxyPlot.Series.HeatMapSeries.Data array is changed.
 
.PARAMETER Interpolate
Sets a value indicating whether to interpolate when rendering. The default value is true.
 
This property is not supported on all platforms. Ignored (off) if OxyPlot.Series.HeatMapSeries.RenderMethod is OxyPlot.Series.HeatMapRenderMethod.Rectangles.
 
.PARAMETER MinValue
 
Gets the minimum value of the dataset.
 
.PARAMETER MaxValue
 
Gets the maximum value of the dataset.
 
.PARAMETER ColorAxis
Sets the color axis.
 
.PARAMETER ColorAxisKey
Sets the color axis key.
 
.PARAMETER CoordinateDefinition
Sets the coordinate definition. The default value is OxyPlot.Series.HeatMapCoordinateDefinition.Center.
 
.PARAMETER RenderMethod
Sets the render method. The default value is OxyPlot.Series.HeatMapRenderMethod.Bitmap.
 
.PARAMETER LabelFormatString
Sets the format string for the cell labels. The default value is 0.00.
 
The label format string is only used when OxyPlot.Series.HeatMapSeries.LabelFontSize is greater than 0.
 
.PARAMETER LabelFontSize
Sets the font size of the labels. The default value is 0 (labels not visible).
 
.PARAMETER ItemsSource
Sets the items source. The default is null.
 
.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 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 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.
 
 
.DESCRIPTION
This cmdlet creates an OxyPlot.Series.HeatMapSeries object.
 
.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 cannot pipe input to the cmdlet.
#>

function New-OxyHeatMapSeries {
  [cmdletbinding()]
  [OutputType([OxyPlot.Series.HeatMapSeries[]], [void])]
  param(
    [object]$X0,
    [object]$X1,
    [object]$Y0,
    [object]$Y1,
    [object]$Data,
    [System.Boolean]$Interpolate,
    [object]$MinValue,
    [object]$MaxValue,
    [OxyPlot.Axes.IColorAxis]$ColorAxis,
    [System.String]$ColorAxisKey,
    [OxyPlot.Series.HeatMapCoordinateDefinition]$CoordinateDefinition,
    [OxyPlot.Series.HeatMapRenderMethod]$RenderMethod,
    [System.String]$LabelFormatString,
    [object]$LabelFontSize,
    [object]$MaxX,
    [object]$MaxY,
    [object]$MinX,
    [object]$MinY,
    [System.String]$XAxisKey,
    [System.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,
    [System.Boolean]$IsVisible,
    [System.String]$Title,
    [System.Boolean]$RenderInLegend,
    [System.String]$TrackerFormatString,
    [System.String]$TrackerKey,
    [System.String]$Font,
    [object]$FontSize,
    [object]$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,
    [System.String]$ToolTip,
    [System.Boolean]$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 = $null
    YAxisTitle = $null
    XDataType = $null
    YDataType = $null
    GroupName = $null
    CategoryNames = @()
    CategoryTitle = $null
  }



}


end {
    $series = New-Object OxyPlot.Series.HeatMapSeries


    $series = $series | Add-Member -PassThru NoteProperty _Info $info

    Apply-OxyStyle $series $Style $MyInvocation

    $props = $PROPERTY_HASH["OxyPlot.Series.HeatMapSeries"]
    Assign-ParametersToProperties $props $PSBoundParameters $Options $series

    if ($AddTo -ne $null) {
      Add-OxyObjectToPlotModel $series $AddTo -NoRefresh
    }
    else {
      $series
    }

  if ($AddTo -ne $null) {
    $AddTo.InvalidatePlot($true)
  }
}
}