Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio饼图-生成百分比_C#_Charts_Percentage_Visual Studio Express - Fatal编程技术网

C# Visual Studio饼图-生成百分比

C# Visual Studio饼图-生成百分比,c#,charts,percentage,visual-studio-express,C#,Charts,Percentage,Visual Studio Express,我通过从SQL表中提取数据来生成饼图。数据是不同项目的小时累积 这些图表构建得很好,但我希望饼图能够显示生成图形时所使用的饼图每个部分的百分比 我正在用下面所示的方法创建图表 // Fill Chart with usable data for (int i = 0; i <= index - 1; i++) { Chart6.Series["Series1"].Points.AddXY(project[i], projTime[i]); } Chart6.Series[0][

我通过从SQL表中提取数据来生成饼图。数据是不同项目的小时累积

这些图表构建得很好,但我希望饼图能够显示生成图形时所使用的饼图每个部分的百分比

我正在用下面所示的方法创建图表

// Fill Chart with usable data
for (int i = 0; i <= index - 1; i++)
{

    Chart6.Series["Series1"].Points.AddXY(project[i], projTime[i]);

}
Chart6.Series[0]["PieLabelStyle"] = "Disabled";
//用可用数据填充图表
对于(int i=0;i准备如下:

   Series S = Chart6.Series["Series1"];
   S.ChartType = SeriesChartType.Pie;
   S.IsValueShownAsLabel = true;
   S["PieLabelStyle"] = "Outside";
如果您知道总数,请创建如下数据点:

   DataPoint p = new DataPoint(project[i], projTime[i]);
   // check your data type for the calculation!
   p.Label = p.YValues[0] + "h =\n"  +
            (100d * p.YValues[0] / total).ToString("00.00") + "%\n"; // my format

如果不知道总数,请先设置点,然后计算总数,最后设置标签:

   for (int i = 0; i <= index - 1; i++)
   {
      S.Points.AddXY(project[i], projTime[i]);
   }

   // calculate the total:
   double total = S.Points.Sum(dp => dp.YValues[0]);

   // now we can set the percentages
   foreach (DataPoint p in S.Points)
   {
       p.Label = p.YValues[0] + "h =\n"  + 
                 (100d * p.YValues[0] / total).ToString("00.00") + "%\n"; // my format
   } 

   chart1.Titles.Add(S.Points.Count + " projects, total " + 
                     total.ToString("###,##0") + " hours");
   chart1.Titles[0].Font = new System.Drawing.Font("Arial", 14f);      
for(int i=0;i dp.y值[0]);
//现在我们可以设置百分比了
foreach(S.Points中的数据点p)
{
p、 Label=p.Y值[0]+“h=\n”+
(100d*p.y值[0]/total)。ToString(“00.00”)+“%\n”//我的格式
} 
图表1.标题.添加(S.Points.Count+“项目总数”+
ToString(“####,###0”)+“小时”);
图表1.标题[0]。字体=新系统。绘图。字体(“Arial”,14f);

非常感谢!什么是查找此类信息的好资源?MSDN一点帮助都没有。问得好!此外,我经常在钻研MSDN时获得成功,并且越来越努力。我希望我知道所有信息都集中在哪一个地方!(请参阅我的更新,并正确处理总数%!)你解决了你的问题吗?如果其中一个答案帮助了你,请考虑把它标记为被接受的答案。