在c#.net中设置饼图的颜色
我正在尝试使用从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
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