Functions/Charts/Add-Axis.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
function Add-Axis {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        #[ValidateNotNullOrEmpty()]
        [System.Xml.XmlElement]
        $Svg
        ,
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [array]
        $Data
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [float]
        $MinX = -400
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [float]
        $MaxX = 400
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [float]
        $MinY = -400
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [float]
        $MaxY = 400
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [float]
        $SpacingX = 50
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [float]
        $SpacingY = 50
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [int]
        $LineWidth = 1
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [string]
        $LineColor = 'black'
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [float]
        $LineOpacity = 0.75
    )

    Add-SvgLine $Svg -Points @(
        @{ x = 0; y = $MinY }
        @{ x = 0; y = $MaxX }
    )
    for ($i = $SpacingY; $i -le $MaxY; $i += $SpacingY) {
        Add-SvgLine $Svg -Points @(
            @{ x =-2; y = $i }
            @{ x = 2; y = $i }
        )
    }
    Add-SvgText $svg -Anchor @{ x = 900; y = -16; anchor = 'middle' } -Text '900'

    Add-SvgLine $Svg -Points @(
        @{ x = $MinX; y = 0 }
        @{ x = $MaxX; y = 0 }
    )
    for ($i = $SpacingX; $i -le $MaxX; $i += $SpacingX) {
        Add-SvgLine $Svg -Points @(
            @{ x = $i; y = -2 }
            @{ x = $i; y =  2 }
        )
    }
    Add-SvgText $svg -Anchor @{ x = -16; y = 200; anchor = 'end' } -Text '1'
}