当系列点超过某个值时,C#图表会改变颜色

时间:2014-12-23 10:31:45

标签: c# colors charts linechart series

我目前正在使用VS C#并在我的表单上有一个图表。

图表工作正常,但如果系列中的任何值达到255(图表的顶部),我想要更改图表的颜色(颜色)

此刻我尝试了这个:

 GRAPH_READY = false;
 c.ChartAreas[0].AxisY.Maximum = 255;
 c.ChartAreas[0].AxisX.Maximum = 256;
 c.ChartAreas[0].AxisX.LabelStyle.Enabled = false;
 c.Series[s].Points.DataBindY(vals.ToArray());
 c.Series[s].ChartType = SeriesChartType.Line;
 c.Series[s].BorderWidth = 3;
 c.Series[s].BorderColor = Color.Red;

 for (int i = 0; i < c.Series[s].Points.Count; i++)
 {
      //here I'm wanting to check if any of the Y values of the points are over 255 
      if (c.Series[s].YValuesPerPoint == 255) c.Series[s].Color = Color.Red;
      else if (c.Series[s].YValuesPerPoint < 254) c.Series[s].Color = Color.Blue;
 }
 GRAPH_READY = true;

我尝试了上面的内容,它似乎无法工作:(图表变为蓝色,因为它从255值开始,但当我使它变为255时,它会保持蓝色。

This is the graph when points are UNDER 255 (Blue graph which is good)

This is the graph when points are AT 255 (Blue graph when it should be Red)

提前致谢,

学家

1 个答案:

答案 0 :(得分:0)

由于我不确定您绑定的值是什么,因此最好捕获上面的所有值并包含最大值。

我建议将您的第一个IF语句更改为:

if (c.Series[s].YValuesPerPoint >= 255) c.Series[s].Color = Color.Red;