我有一个简单的图表,我希望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中的图表内容。
答案 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;
结果
上面要看的关键属性/行是“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。