在c#.net中设置饼图的颜色

在c#.net中设置饼图的颜色,c#,pie-chart,C#,Pie Chart,我正在尝试使用从C#.NET数据库中提取的数据创建一个简单的饼图。我使用了以下代码: string[] xAxis = { "Banana", "Mango", "Apple" }; double BananaPercentage= 40; double MangoPercentage= 30; double ApplePercentage = 30; double[] Percentage = { BananaPercentage, MangoPercentage, ApplePerc

我正在尝试使用从C#.NET数据库中提取的数据创建一个简单的饼图。我使用了以下代码:

string[] xAxis = { "Banana", "Mango", "Apple" };    
double BananaPercentage= 40;
double MangoPercentage= 30;
double ApplePercentage = 30;
double[] Percentage = { BananaPercentage, MangoPercentage, ApplePercentage };

Color[] PieColors = { Color.Green, Color.Red, Color.Gray };   

chart1.Series[0].Label = "#PERCENT";
chart1.Series[0].LegendText = "#AXISLABEL";
//chart1.Series[0].Points[0].Color = PieColors[0];
chart1.Series[0].Points.DataBindXY(xAxis, Percentage);
它显示具有正确值的饼图。但当我尝试为香蕉(绿色)、芒果(红色)和苹果(灰色)指定特定颜色时,它显示错误“索引超出范围。必须为非负…”。 有人能给我一些提示吗

“索引超出范围…”是因为
图表1.系列[0]。点[0]
,尤其是
。点[0]
。不是因为
PieColors[0]
。如果您想进一步使用这些点或更改它们的颜色,您应该在之前添加一些点。例如:

int index = chart1.Series[0].Points.AddXY(x, y);
然后你可以这样做:

chatr1.Series[0].Points[index].Color = PieColors[0]; //or whatever color
在本例中,问题是,在尝试指定点的颜色后,将点绑定到
chart1.Series[0]。点。尝试更改此选项:

chart1.Series[0].Label = "#PERCENT";
chart1.Series[0].LegendText = "#AXISLABEL";
chart1.Series[0].Points[0].Color = PieColors[0];
chart1.Series[0].Points.DataBindXY(xAxis, Percentage);

如果要更改系列颜色,而不是点,可以编写如下内容:

chart1.Series[0].Color = Color.Red; //or any other color, maybe from PieColor

这个.CategoryGraphChart.Series[“Categories”].Points.AddXY(test.ToString()+”(“+number+”),number)

CategoryGraphChart.Palette=ChartColorPalette.None

CategoryGraphChart.PaletteCustomColors=新颜色[]{Color.BlanchedAlmond,Color.Blue,Color.Yellow}


此代码将起作用…

如何分配特定颜色?是的,亲爱的:)3个特定颜色对应3个特定值。我假设
索引超出范围
异常与
点相关,而不是
颜色
。为什么您希望序列在绑定它们之前有点?我认为@UğurAldanmaz是正确的,请尝试使用
chart1.series[0].points.DataBindXY(xAxis,Percentage)
chart1.Series[0]。点[0]。颜色=颜色[0]是的,你是对的。我解决了:)
chart1.Series[0].Color = Color.Red; //or any other color, maybe from PieColor