我在asp.net网站上第一次使用c#,我正在创建图表。 我创建了一个柱形图 - 2D,代码就像这样,
protected void chrtTickets_Load(object sender, EventArgs e)
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
connection.Open();
SqlCommand cmmd6 = new SqlCommand("getHowTicketsLoggedChart", connection);
cmmd6.CommandType = CommandType.StoredProcedure;
DataSet ds1 = new DataSet();
SqlDataAdapter dad = new SqlDataAdapter(cmmd6);
dad.Fill(ds1);
chrtTickets.DataSource = ds1;
chrtTickets.Series["Series1"].XValueMember = "MonYYYY";
chrtTickets.Series["Series1"].YValueMembers = "aa";
chrtTickets.DataBind();
connection.Close();
}
}
但我有存储过程,它返回另一个字段"描述"与MonYYYy和aa一起使用,因为它们用于xaxis和yaxis。
但根据"描述"字段值说:电子邮件,电话,门户网站。我希望为每列分配不同的颜色,具体取决于每行的描述值,如果它的Email->红色等等。
有人可以指导我完成这个吗?
我的意思是我的数据将是这样的:所以我不会事先知道什么是颜色类型值,这是我的存储过程从db返回给我的表值。
颜色类型| y轴值| x轴
电子邮件连接器| 24 | 2011年12月 电话| 32 | 2011年12月 电子邮件连接器| 643 | 2012年1月 内部| 32 | 2012年1月 电话| 455 | 2012年1月 门户| 2 | 2012年1月 销售订单| 2 | 2012年1月
它是前5种类型中的一种。电子邮件,门户网站,但许多x轴值。数据点不会被人知道。他们很有活力。
答案 0 :(得分:1)
你可以尝试这个,它应该随机选择下一个栏的颜色
Color[] colors = new Color[] { Color.Red, Color.Green, Color.Wheat, Color.Gray. Color.Black, Color.Blue};
foreach (Series series in chrtTickets.Series)
{
foreach (DataPoint point in series.Points)
{
Random random = new Random();
int randomNumber = random.Next(0, 5);
point.LabelBackColor = colors[ randomNumber];
}
}