我想创建一个24小时的时间表图表

时间:2017-03-08 15:26:53

标签: excel powershell google-visualization

我编写了一个PowerShell脚本,用于提取前一个月的系统开/关时间。我将所有这些数据存储在一个列表中。

我想创建一种图表,它将在y轴和时间轴上设置日期,即(在上午12:00到下午23:00)x轴,如下所示:picture

我使用Google Charts创建了这种图表,这里是jsFiddle google.charts.load('current', {'packages':['timeline']}); 为了那个原因。这个问题是我不能在邮件上与用户分享这个图表。

我也试图在excel中创建这种图表,但没有成功。

所以请任何人建议我或指向我可用于创建此类图表并通过电子邮件与用户分享的内容。

1 个答案:

答案 0 :(得分:2)

使用MS Chart Controls,这将允许您以编程方式创建图表,然后另存为图像,然后您可以将其附加到电子邮件中。

This example,代码如下,显示了如何制作条形图。

这不是您可以使用的代码'原样'

继续阅读以获取有关如何使用此作为创建所需图表类型的基础的更多信息。

[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms.DataVisualization")
$scriptpath = Split-Path -parent $MyInvocation.MyCommand.Definition

# chart object
$chart1 = New-object System.Windows.Forms.DataVisualization.Charting.Chart

$chart1.Width = 600
$chart1.Height = 600
$chart1.BackColor = [System.Drawing.Color]::White

# title
[void]$chart1.Titles.Add("Top 5 - Memory Usage (as: Column)")
$chart1.Titles[0].Font = "Arial,13pt"
$chart1.Titles[0].Alignment = "topLeft"

# chart area 
$chartarea = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea
$chartarea.Name = "ChartArea1"
$chartarea.AxisY.Title = "Memory (MB)"
$chartarea.AxisX.Title = "Process Name"
$chartarea.AxisY.Interval = 100
$chartarea.AxisX.Interval = 1
$chart1.ChartAreas.Add($chartarea)

this link中的C#示例显示了如何基于您的示例构建甘特图,这是我认为您想要的。

因此,您现在需要将C#Gantt代码与PowerShell代码结合使用,以在PowerShell中创建甘特图。

This link,展示了一些PowerShell图表,还展示了如何保存图表

$chart1.SaveImage('C:\temp\chart.jpeg', 'jpeg')