C#图表旋转标签

时间:2011-05-18 16:29:57

标签: c# charts

我有一个简单的图表,我希望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中的图表内容。

5 个答案:

答案 0 :(得分:28)

文档说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

答案 1 :(得分:17)

以下是我通常旋转X轴标签的方法。

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

结果

enter image description here

上面要看的关键属性/行是“LabelAutoFitStyle”。

答案 2 :(得分:1)

我需要这些线才能让它发挥作用:

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

答案 3 :(得分:0)

我知道这个问题很老并且可以回答。我只想说Series.LabelAngle控制系列的标签,而不是Axis。如果添加这两行,标签将显示在列上方,并旋转45度:

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

所以您必须像MaciejRogoziński所说的那样设置AxisX的LabelAngle。

答案 4 :(得分:0)

Axis.IsLabelAutoFit的默认值为true,因此必须将其设置为false才能应用LabelStyle.Angle。