単純なグラフがあり、x軸のラベルを45度回転させたい。何が悪いのですか?
Chart c = new Chart();
c.ChartAreas.Add(new ChartArea());
c.Width = 200;
c.Height = 200;
Series mySeries = new Series();
mySeries.Points.DataBindXY(new string[] { "one", "two", "three" }, new int[] { 1, 2, 3 });
mySeries.LabelAngle = 45; // why doesn't this work?
c.Series.Add(mySeries);
出力は次のとおりです。
私はSystem.Web.UI.DataVisualization.Chartingのチャートを使用しています。
ドキュメントによると、Series.LabelAngleはデータポイントのラベル角度を設定します。これは(おそらく)グラフの列の上のラベルです。
軸ラベルの角度を設定するには、次のようにします。
var c = Chart1;
c.ChartAreas.Add(new ChartArea());
c.Width = 200;
c.Height = 200;
Series mySeries = new Series();
mySeries.Points.DataBindXY(new string[] { "one", "two", "three" }, new int[] { 1, 2, 3 });
//mySeries.LabelAngle = -45; // why doesn't this work?
c.Series.Add(mySeries);
c.ChartAreas[0].AxisX.LabelStyle.Angle = 45; // this works
X軸ラベルを通常回転する方法を次に示します。
ChartArea area = new ChartArea();
area.AxisX.IsLabelAutoFit = true;
area.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.LabelsAngleStep30;
area.AxisX.LabelStyle.Enabled = true;
結果
上記の主要なプロパティ/行は「LabelAutoFitStyle」です。
それを機能させるためにこれらの行が必要でした:
chartarea.AxisX.LabelStyle.Angle = -90;
chartarea.AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;
chartarea.AxisX.IsLabelAutoFit = false;
私はこの質問が古く、答えられていることを知っています。 Series.LabelAngleはAxisではなくシリーズのラベルを制御するとだけ言いたいです。これらの2行を追加すると、ラベルは列の上に表示され、45度回転します。
mySeries.IsValueShownAsLabel = true;
mySeries.SmartLabelStyle.Enabled = false;
したがって、MaciejRogozińskiが言ったように、AxisXのLabelAngleを設定する必要があります。