[PowerShell] Integration de Microsoft Chart Controls for Microsoft .Net 3.5

Comment faire de beau graphique dans PowerShell simplement! Microsoft offre un kit qui fournit des controles pour pouvoir créer des graphiques dynamiques dans vos projets Visual Studio… Alors pourquoi ne pas les utiliser avec PowerShell.

Installer les Microsoft Chart Control for .Net 3.5

Une fois installer, déclarez les librairies de Microsoft Chart Controls et lancez-vous dans le code!

##################################################################
#                  NECESSITE L’INSTALLATION DE MICROSOFT CHART CONTROL                                              
#                              FOR MICROSOFT .NET 3.5                                     
#
http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=en                                                                                                                           # ################################################################

##################################################################
#                   Chargement des Assembly                                                 
#——————————————————————————————-#
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")                   
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms.DataVisualization") 
##################################################################

##################################################################
#                        Création de l’objet Graphique                                     
#——————————————————————————————-
$MyChart = New-object System.Windows.Forms.DataVisualization.Charting.Chart                 
$MyChart.Width = 500                                                                        
$MyChart.Height = 500                                                                       
$MyChart.Left = 40                                                                          
$MyChart.Top = 30                                                                           
##################################################################

##################################################################
#               Creation de la zone du graphique dans le graphique                         
#——————————————————————————————-#
$GraphZone = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea           
$GraphZone.Area3DStyle.Enable3D="True"                                                      
$MyChart.ChartAreas.Add($GraphZone)                                                         
##################################################################

##################################################################
#                   Récupération des données du graphique                                        
#                                                                                                
#                    La taille des sous-dossiers                                                 
#————————————————————————————————
$MyFolders = Get-ChildItem -Path C:\Powershell|Where-Object{$_.psIsContainer -eq $True}          
$Size = @{}                                                                                                                                                              
foreach($folder in $MyFolders)                                                                   
{                                                                                                
$colItems = (Get-ChildItem -Path $folder.FullName -Recurse|Measure-Object -property length -sum) 
$Mykeys = $folder.Name                                                                           
$MyKeys += "\n" +$folder.CreationTime                                                            
$MyValue += " (" +"{0:N2}" -f ($colItems.sum/1Mb)+’ Mb)’                                         
$Size += @{$MyKeys="{0:N3}" -f ($colItems.sum/1Mb)}                                                                                                                                            }                                                                                                
##################################################################

#########################################################################                 Ajout des données du graphique                                                 
#————————————————————————————————#
[void]$MyChart.Series.Add("Data")
$MyChart.Series["Data"].Points.DataBindXY($Size.Keys, $Size.Values)

########################################################################
#                Ajout Titre et Labels
#————————————————————————————————-
[void]$MyChart.Titles.Add("Size of folders")
$GraphZone.AxisX.Title = "Folder"
$GraphZone.AxisY.Title = "Size of Folder (Mb)"

########################################################################
#              Changement de la couleur de la zone de texte                                      #
#————————————————————————————————-
$MyChart.BackColor = [System.Drawing.Color]::White
# Valeur possible pour BackColor: Une couleur au choix
#
$MyChart.Palette = [System.Windows.Forms.DataVisualization.Charting.ChartColorPalette]::EarthTones
#
# Valeur possible pour Palette:
# None,Bright,Grayscale,Excel,Light,Pastel,EarthTones,SemiTransparent,Berry,Chocolate
# Fire, SeaGreen, BrightPastel
#
########################################################################
#              le data Chart                                          
#————————————————————————————————-
$MyChart.Series["Data"]["DrawingStyle"] = "Cylinder"
$MyChart.Series["Data"].Sort([System.Windows.Forms.DataVisualization.Charting.PointSortOrder]::Ascending, "Y")
$MyChart.Series["Data"].ChartType = [System.Windows.Forms.DataVisualization.Charting.SeriesChartType]::Bar

#Options de SeriesChartType
# Point, FastPoint, Bubble, Line, Spline, StepLine, FastLine, Bar, StackedBar, StackedBar100, Column,
# StackedColumn, StackedColumn100,Area, SplineArea, StackedArea, StackedArea100, Pie, Doughnut, Stock,
# Candlestick, Range, SplineRange, RangeBar, RangeColumn, Radar,Polar, ErrorBar, BoxPlot, Renko,
# ThreeLineBreak, Kagi, PointAndFigure, Funnel, Pyramid
########################################################################

########################################################################
#                            Affiche le graphique dans la Windows Form                           
#————————————————————————————————
$MyChart.Anchor = [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Right

-bor [System.Windows.Forms.AnchorStyles]::Top -bor [System.Windows.Forms.AnchorStyles]::Left
$Form = New-Object Windows.Forms.Form
$Form.Text = "Graphique PowerShell – Microsoft Chart Control"
$Form.Width = 600
$Form.Height = 600
$Form.controls.add($MyChart)
$Form.Add_Shown({$Form.Activate()})
$Form.ShowDialog()
########################################################################

Le résultat en image….

MicrosoftChartControl

Bookmark and Share

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s