X 軸にカスタム ラベルを使用して C# でグラフを作成しています。スケールは日付であり、選択した値に基づいて変化します (1 か月から 2 年)。それはうまく機能し、スケールの値を変更するたびにチャートの幅は一定のままです。バーの幅を調整するだけです。
ラベルを回転しようとすると問題が発生します。私が行うと、すべてのバーのサイズが異なるスケールごとに異なるサイズに変更され、元のバーと同じ量のスペースを占有することはありません。すべてのサイズを変更せずにラベルを回転できるようにしたい。これはできますか?なぜこうなった?どうすれば修正できますか?
カスタム ラベルを追加するために使用しているコードは次のとおりです。
DateTime StartMonthPos = XValues[0];
DateTime EndPos = new DateTime();
if (Time == 6 || Time == 12 || Time == 24)
{
foreach (DateTime Date in XValues)
{
EndPos = Date;
if (Date.Month != month)
{
Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None);
StartMonthPos = Date;
}
month = Date.Month;
}
XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None);
}
else
{
foreach (DateTime Date in XValues)
{
EndPos = Date;
Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("M"), 0, LabelMarkStyle.None);
StartMonthPos = Date;
}
XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("M"), 0, LabelMarkStyle.None);
}
その後にこのコード行を追加すると、めちゃくちゃになります。
Chart4.ChartAreas[0].AxisX.LabelStyle.Angle = 0;
問題のあるコードの前の写真を次に示します。
そして、これが後の写真です: