C# Visual Studio饼图-生成百分比
我通过从SQL表中提取数据来生成饼图。数据是不同项目的小时累积 这些图表构建得很好,但我希望饼图能够显示生成图形时所使用的饼图每个部分的百分比 我正在用下面所示的方法创建图表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][
// 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时获得成功,并且越来越努力。我希望我知道所有信息都集中在哪一个地方!(请参阅我的更新,并正确处理总数%!)你解决了你的问题吗?如果其中一个答案帮助了你,请考虑把它标记为被接受的答案。