2016-09-18 4 views
0

.NET 4の内蔵チャートコントロールで折れ線グラフを生成しようとしています。 角度にX軸のラベルを付けたい私は自分のチャートを特定のサイズにしたいと思っています。.NETチャートコントロールは、グラフサイズが指定されたときにLabelAutoFitStyleを無視します。

グラフの幅/高さを指定すると、LabelAutoFitStyleは無視されます。私はまた、ラベルの.Angleプロパティなどを使ってみました、そして、もし私が幅の&の高さを指定しなかった場合にのみ動作します。

しかし、グラフの高さの幅を&と指定しなかった場合、データはすべて非常に小さなチャートに詰まってしまいます。

LabelAutoFitStyleを使用する方法はありますかは、チャートがより大きなサイズ、好ましくは特定のサイズであることを確認してください。

私は$ chart.MinimumSizeと$ chart.Sizeも使ってみましたが、チャートの出力には影響していないようです。

[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms.DataVisualization") 

ForEach ($url in $urlList) 
{ 
    $chart = New-Object System.Windows.Forms.DataVisualization.Charting.Chart 
    #$chart.Width = 1024 
    #$chart.Height = 690 

    $chart.BackColor = [System.Drawing.Color]::White 
    $chart.Titles.Add("$url load time (ms)") 
    $chart.Titles[0].Alignment ="topLeft" 
    $chart.AutoSize = $true 
    $chartArea = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea 
    $chartArea.name = "ChartArea1" 
    $chartArea.AxisY.Title = "Load Time (ms)" 
    $chartArea.AxisX.Title = "Time" 
    $chartArea.AxisX.IsLabelAutoFit = $true 
    $chartArea.AxisX.LabelAutoFitStyle = [System.Windows.Forms.DataVisualization.Charting.LabelAutoFitStyles]::LabelsAngleStep90 

    $chartArea.Axisx.LabelStyle.Enabled = $true 
    $chart.ChartAreas.Add($chartArea) 
    $colorIndex = 0 

    ForEach ($pac in $pacList) 
    { 
     $chart.Series.Add($pac) 
     $chart.Series[$pac].ChartType = "Line" 
     $chart.Series[$pac].BorderWidth = $borderWidth 
     $chart.Series[$pac].IsVisibleInLegend = $true 
     $chart.Series[$pac].ChartArea = "ChartArea1" 
     $chart.Series[$pac].Color = $colorList[$colorindex] 
     $colorindex++ 

    } 
    $urlData = $data | Where-Object { $_.URL -eq $url } 
    ForEach ($row in $urlData) 
    { 
     $chart.Series[$row.'PAC FILE'].Points.AddXY($row.TIME, $row.'Page Load Time 2 (ms)') 
    } 

    $chartFilename = (Join-Path -Path $PSScriptRoot -ChildPath (Fix-Filename $url)) + ".png" 
    $chart.SaveImage($chartFilename,"png") 
} 

答えて

1

私は次の行を使用する場合:

$chartarea.AxisX.IsLabelAutoFit = $false 
$chartarea.AxisX.LabelStyle.Angle = 90 

私は$ falseをに明示的にIsLabelAutoFitを設定します。
幅と高さを好きなものに設定し、ラベルの角度を90度に設定できます。

$chart.Width = 1024 
$chart.Height = 690 
関連する問題