繁体   English   中英

Powershell:在条形图上放置第二个 X 轴

[英]Powershell: Placing Second X-Axis on bar chart

以下图表使用 powershell 和 csv 文件。 我还想将“时间”添加为顶级辅助 X 轴,但我不知道如何将其添加到系列中。

我怀疑这是与$chart1.Series["Elapse"].Points.DataBindXY($date, $totalMinutes) $chart1.Series["Elapse"].Points.DataBindXY($date, $totalMinutes)的线,但是如何DataBind XY 由两个 X 轴确定?

条形图 简历:

Date,Time,Attempts,TotalMinutes
06/08/2020,20:48,6,6.08613289666667
06/08/2020,21:20,9,9.10416342666667
06/09/2020,07:25,2,2.06852810833333

powershell:

#CONSTANTS
$directory = "C:\Users\gamble.pw\Desktop\powershell"
$csvFile = "logfile.csv"

#chart object
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms.DataVisualization")
$chart1 = New-object System.Windows.Forms.DataVisualization.Charting.Chart
$chart1.Width = 2000
$chart1.Height = 1000
$chart1.BackColor = [System.Drawing.Color]::White

#title 
[void]$chart1.Titles.Add("Login Time")
$chart1.Titles[0].Font = "segoeuilight,20pt"
$chart1.Titles[0].Alignment = "topLeft"

#chart area
$chartarea = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea
$chartarea.Name = "ChartArea1"
$chartarea.AxisY.Title = "Elapse Time in Minutes"
$chartarea.AxisX.Title = "Date"
$chartarea.AxisX2.Title = "Time"
$chartarea.AxisY.Interval = 1
$chartarea.AxisX.Interval = 1 
$chart1.ChartAreas.Add($chartarea)


#data source
$datasource = Import-Csv "$directory\$csvFile"
$date = $datasource.Date 
$time = $datasource.Time 
$totalMinutes = $datasource.TotalMinutes

Write-Host $date
Write-Host $time
Write-Host $attempts
Write-Host $totalMinutes


#data series
[void]$chart1.Series.Add("Elapse")
#$chart1.Series["Elapse"].ChartType = [System.Windows.Forms.DataVisualization.Charting.SeriesChartType]::Line
$chart1.Series["Elapse"].BorderWidth = 2
$chart1.Series["Elapse"].Points.DataBindXY($date, $totalMinutes)


$chart1.SaveImage("$directory\Bar_Chart_Login.png","png")

每个轴应该有不同的系列。 您必须在系列中定义要使用的轴。 一旦你知道你想要系列到 go 的哪个轴,你可以将它设置为AxistType

$chart1.Series["Elapse"].YAxisType = AxisType.Secondary;
$chart1.Series["Elapse"].XAxisType = AxisType.Secondary;

设置 AxisType 后,当您对系列进行数据绑定时,它将知道在哪个轴上显示它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM