2016-07-22 58 views
0

如果总金额低于5,000,如何更改chartbar的颜色?如果金额不符合条件,则更改图表的条形颜色

这里是我的代码..

 cmd = new MySqlCommand("SELECT DATE_FORMAT(date, '%m-%d-%y') date, SUM(totalamount) totalamt FROM tblsales WHERE month(date) = month(now()) GROUP BY date"); 
     cmd.Connection = dbConn; 

     MySqlDataReader rdr = cmd.ExecuteReader(); 

     while (rdr.Read()) 
     { 
      this.chart1.Series["Month"].Points.AddXY(rdr["date"].ToString(), rdr.GetDouble("totalamt")); 
     } 

     rdr.Close(); 

enter image description here

+0

你不说你正在使用哪个图表库;答案将取决于其功能。 –

回答

1

您可以通过DataPointColor属性设置栏的颜色:

chart1.Series[0].Points[i].Color = Color.Red; 

但是没有表情对于Color属性,所以无论何时设置或更改数据,都必须设置它。

你可以做到这一点,同时增加了DataPoints

while (rdr.Read()) 
{ 
    int index = this.chart1.Series["Month"].Points.AddXY(rdr["date"].ToString(), 
                 rdr.GetDouble("totalamt")); 
    if (rdr.GetDouble("totalamt") < 5000) 
     this.chart1.Series["Month"].Points[index].Color = Color.Red; 
} 

或者你可以编写一个函数后,更新色彩:

void SetColors(Series s, Color color, double limit) 
{ 
    foreach (DataPoint dp in s.Points) 
     if (dp.YValues[0] < limit) dp.Color = color; 
} 
0

好像你正在使用ASP.NET图表。对于相同的,你可以做类似

chart1.Series[0].Color = Color.Green; 

选择任何颜色适合你作为根据如果其他条件的值。