Awesome Open Source
Awesome Open Source

Powershell Console/Terminal Graph

Consumes data points as input and plots them on a 2D graph in the Powershell console

Type of Graphs Available -

  1. Scatter

  2. Bar

  3. Line


PowerShell v5 and Later

You can install the Graphical module directly from the PowerShell Gallery

  • [Recommended] Install to your personal PowerShell Modules folder
    Install-Module Graphical -scope CurrentUser
  • [Requires Elevation] Install for Everyone (computer PowerShell Modules folder)
    Install-Module Graphical

PowerShell v4 and Earlier

To install to your personal modules folder run:

iex (new-object System.Net.WebClient).DownloadString('')


  • Color-coded output depending upon the Value of data point
  • Colors codes can be customized by passing a color-map hash table
  • Custom X an Y-Axis labels
  • Graph in console is independent and fully customizable, not like Task Manager (Performance Tab)
  • Could be incorporated in Powershell scripts
  • Can consume data points generated during script run or Pre stored data like in a file or database.
  • Independent of PowerShell version, and Works on PowerShell Core (Windows\Linux)

Use Cases

  1. The function Show-Graph takes data points as input and plot them on a 2D graph

    You can also customize the labels on X and Y-Axis and provide a graph title

    The function Show-Graph can consume data points, generated during script execution or from a file or database like in the above example.

  2. Plotting Audio Peak Levels in your PowerShell Console (Don't forget to play some audio! :P)

    Install-Module AudioDeviceCmdlets, Graphical
    Import-Module AudioDeviceCmdlets, Graphical -Verbose
    $Device = Get-AudioDevice -Playback
    [int[]]$datapoints [email protected](0)*50
    do {
        $PeakValue = $Device.Device.AudioMeterInformation.MasterPeakValue*100
        $datapoints += [int]$PeakValue
        $datapoints = $datapoints | Select-Object -last 50
        Show-Graph -datapoints $datapoints -GraphTitle AudioLevels
        Show-Graph -datapoints $datapoints -GraphTitle AudioLevels -Type Line
        Show-Graph -datapoints $datapoints -GraphTitle AudioLevels -Type Scatter
        Start-Sleep -Milliseconds 1000
    } while ($true)
  3. Visualizing Azure Monitor Metrics like CPU %age on a Virtual machine in #PowerShell

$ResourceID = '/subscriptions/<subscription>/resourceGroups/demo-resource-group/providers/Microsoft.Compute/virtualMachines/SimpleWinVM'
$Data = Get-AzMetric -ResourceId $ResourceID  -WarningAction SilentlyContinue | Select-Object unit, data
$Datpoints = ${[int]$_})

Import-Module Graphical
Show-Graph -Datapoints $Datpoints -GraphTitle 'CPU (% age)'


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
linux (2,508
windows (1,460
powershell (1,346
terminal (733
ascii-art (77
core (66