web-dev-qa-db-ja.com

C#グラフの回転ラベル

単純なグラフがあり、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);

出力は次のとおりです。

img

私はSystem.Web.UI.DataVisualization.Chartingのチャートを使用しています。

21
Xodarap

ドキュメントによると、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
29

X軸ラベルを通常回転する方法を次に示します。

 ChartArea area = new ChartArea();
 area.AxisX.IsLabelAutoFit = true;
 area.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.LabelsAngleStep30;
 area.AxisX.LabelStyle.Enabled = true;

結果

enter image description here

上記の主要なプロパティ/行は「LabelAutoFitStyle」です。

18
Zachary

それを機能させるためにこれらの行が必要でした:

chartarea.AxisX.LabelStyle.Angle = -90;
chartarea.AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;
chartarea.AxisX.IsLabelAutoFit = false;
2
Sean

私はこの質問が古く、答えられていることを知っています。 Series.LabelAngleはAxisではなくシリーズのラベルを制御するとだけ言いたいです。これらの2行を追加すると、ラベルは列の上に表示され、45度回転します。

mySeries.IsValueShownAsLabel = true;
mySeries.SmartLabelStyle.Enabled = false;

したがって、MaciejRogozińskiが言ったように、AxisXのLabelAngleを設定する必要があります。

0
qian