Playgroud.ps1
Import-Module c:\data\powershell\repository\Graphical\Graphical.psd1 -Verbose $Datapoints = 67, 68, 33, 62, 38, 68, 55, 68, 60, 60, 72, 54, 44, 73, 62, 75, 61, 53, 34, 56, 74, 41 Show-Graph -Datapoints $Datapoints -GraphTitle "CPU" -Type Line Show-Graph -Datapoints $Datapoints -GraphTitle "Network" -Type Bar Show-Graph -Datapoints $Datapoints -GraphTitle 'Memory' -Type Scatter 9600, 9604, 9632, 9642, 9679, 9726 | ForEach-Object{write-host $([char]$_) ' - ' $_} 9800..9900 | ForEach-Object{write-host $([char]$_) ' - ' $_} 9581..9584| ForEach-Object{write-host $([char]$_) ' - ' $_}; $lower = [char]9149 $upper = [char]9146 [string]::Concat($lower,$upper,$leftlink) $leftlink = [char]9144 $rightlink = [char]9145 $up_lefthalf = [char]9163 $down_lefthalf = [char]9164 $up_righthalf = [char]9150 $down_righthalf = [char]9151 $upper_link = [char]9589 $lower_link = [char]9591 $link = '|' $up_lefthalf;$down_lefthalf;$up_righthalf;$down_righthalf;$link, $leftlink;$rightlink $up_upperhalf = [char]9581 $down_upperhalf = [char]9582 $up_lowerhalf = [char]9583 $down_lowerhalf = [char]9584 $upper_link = [char]9589 $lower_link = [char]9591 $link = '|' $up_upperhalf;$down_upperhalf;$up_lowerhalf;$down_lowerhalf;$upper_link;$lower_link;$link # PI chart 10250..10495 | ForEach-Object{write-host $([char]$_) ' - ' $_} 9150,9151, 9163, 9164| ForEach-Object{write-host $([char]$_) ' - ' $_} $TopLeft = [char]9150 $BottomLeft = [char]9151 $TopRight = [char]9163 $BottomRight = [char]9164 $VerticalEdge = [char]9145 $TopEdge = [char]9620 $BottomEdge = [char]9601 $obj = [Graph]::new() $obj.YAxisStep = 30 $obj.XAxisStep = 10 $obj.Plot($Datapoints,'Bar',$null,$null) $obj.Plot($Datapoints,'Scatter',$null,$true) [char]10495 $radius = 5 $diameter = $radius*2 $Array = New-Object 'object[,]' $diameter,$diameter For($i = 0;$i -lt $Datapoints.count;$i++){ # Fit datapoint in a row, where, a row's data range = Total Datapoints / Step $RowIndex = [Math]::Ceiling($($Datapoints[$i]-$StartOfRange)/$Step) # use a half marker is datapoint falls in less than equals half of the step $HalfMark = $Datapoints[$i]%$Step -in $(1..$HalfStep) if($HalfMark){ $Array[($RowIndex),$i] = [char] 9604 }else{ $Array[($RowIndex),$i] = $Marker } # To get a bar fill all the same row indices of 2D array under and including datapoint For($j=0;$j -lt $RowIndex;$j++){ #write-host "`$RowIndex:$RowIndex Data:$($Datapoints[$i]) `$i:$i `$j=$j `$Step:$Step Rows:$NumOfRows Cols:$NumOfDatapoints" $Array[$j,$i] = $Marker } } # return the 2D array of plots return ,$Array for($y=0; $y -lt $diameter; $y++) { $slope = $radius*$radius-$y*$y if($slope -lt 0){ $slope = $diameter - [math]::Sqrt([math]::Abs($slope)) } else { $slope = [math]::Sqrt($slope) } #$(" "*$x) + $slope #$x= [math]::Sqrt($radius*$radius-$y*$y) #$x= [math]::Sqrt() [string]::Concat('[',$slope,',',$y,']') [string]::Concat($(" "*$slope),"*") } $half_row_width for($x=-$half_row_width; $x -lt $half_row_width; $x++){ WritePixel(centre_x+x, centre_$y+$y, colour); } } for($y=0; $y -lt $diameter; $y++) { for($x=0; $y -lt $radius; $x++){ $pixel = [string]::Concat(" "*$($radius+$x),"*") [string]::Concat('[',$(slope),',',$y,']') } [string]::Concat($(" "*$slope),"*") } |