MS 图表:标签值上的不同颜色
MS Charts: Different colors on label values
他们是否有任何可能的方法在雷达图的每个 X 轴值上获得不同的颜色?
已经尝试过自定义标签,但没有用。
任何帮助将不胜感激。
AxisLabels
.
既没有属性也没有 CustomAttributes
来实现这个
但是 CustomLabels
会很好地完成这项工作。
下面是一个例子,为 Series
中的每个 DataPoint
添加一个 CustumLabel
并赋予它随机颜色:
设置数据:
Random rnd = new Random(0);
List<Color> colors = new List<Color>() { Color.Red, Color.Firebrick, Color.Gold,
Color.DeepPink, Color.Azure, Color.IndianRed, Color.ForestGreen };
ChartArea ca = chart.ChartAreas[0];
Series s = chart.Series[0];
for (int i = 1; i < 7; i++)
{
s.Points.AddXY(i, i+ rnd.Next(20 - i));
}
现在添加CustomLabels
:
foreach (var dp in s.Points)
{
CustomLabel cl = new CustomLabel();
cl.FromPosition = dp.XValue;
cl.ToPosition = dp.XValue ;
cl.Text = dp.YValues[0]+ "$";
cl.ForeColor = colors[rnd.Next(colors.Count)];
ca.AxisX.CustomLabels.Add(cl);
}
请注意,对于 ChartType Radar
,这很简单;对于大多数其他类型,获得 FromPosition
和 ToPosition
是相当棘手的:你需要计算(通常)两点之间的中心..
他们是否有任何可能的方法在雷达图的每个 X 轴值上获得不同的颜色?
已经尝试过自定义标签,但没有用。
任何帮助将不胜感激。
AxisLabels
.
CustomAttributes
来实现这个
但是 CustomLabels
会很好地完成这项工作。
下面是一个例子,为 Series
中的每个 DataPoint
添加一个 CustumLabel
并赋予它随机颜色:
设置数据:
Random rnd = new Random(0);
List<Color> colors = new List<Color>() { Color.Red, Color.Firebrick, Color.Gold,
Color.DeepPink, Color.Azure, Color.IndianRed, Color.ForestGreen };
ChartArea ca = chart.ChartAreas[0];
Series s = chart.Series[0];
for (int i = 1; i < 7; i++)
{
s.Points.AddXY(i, i+ rnd.Next(20 - i));
}
现在添加CustomLabels
:
foreach (var dp in s.Points)
{
CustomLabel cl = new CustomLabel();
cl.FromPosition = dp.XValue;
cl.ToPosition = dp.XValue ;
cl.Text = dp.YValues[0]+ "$";
cl.ForeColor = colors[rnd.Next(colors.Count)];
ca.AxisX.CustomLabels.Add(cl);
}
请注意,对于 ChartType Radar
,这很简单;对于大多数其他类型,获得 FromPosition
和 ToPosition
是相当棘手的:你需要计算(通常)两点之间的中心..