我试图使用从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);
它显示具有正确值的饼图.但是,当我尝试为香蕉(绿色),芒果(红色)和苹果(灰色)分配特定颜色时,它显示错误“索引超出范围.必须为非负数….”.
谁能给我任何提示,这是怎么了?
解决方法:
“索引超出范围…”是因为chart1.Series [0] .Points [0],尤其是.Points [0].不是因为PieColors [0].如果要进一步使用它们或要更改其颜色,则应在前面添加一些点.例如 :
int index = chart1.Series[0].Points.AddXY(x, y);
然后您可以执行以下操作:
chatr1.Series[0].Points[index].Color = PieColors[0]; //or whatever color
在您的情况下,问题是,您尝试分配Point的颜色后将点绑定到chart1.Series [0] .Points.尝试更改此:
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].Label = "#PERCENT";
chart1.Series[0].LegendText = "#AXISLABEL";
chart1.Series[0].Points.DataBindXY(xAxis, Percentage);
chart1.Series[0].Points[0].Color = PieColors[0];
chart1.Series[0].Points[1].Color = PieColors[1];
chart1.Series[0].Points[2].Color = PieColors[2];
如果要更改“系列”颜色而不是“点”,则可以编写如下内容:
chart1.Series[0].Color = Color.Red; //or any other color, maybe from PieColor
标签:pie-chart,c 来源: https://codeday.me/bug/20191121/2050416.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。