可绘制:饼图
饼图
饼图将数字比例表示为圆的切片。
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 778, 283, 184, 76, 43 };
plt.AddPie(values);
plt.SaveFig("pie_quickstart.png");
分解饼图
分解饼图各部分之间有一点空间。
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 778, 283, 184, 76, 43 };
var pie = plt.AddPie(values);
pie.Explode = true;
plt.SaveFig("pie_exploded.png");
油炸圈饼图
油炸圈饼图是中心中空的饼图。
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 778, 283, 184, 76, 43 };
var pie = plt.AddPie(values);
pie.Explode = true;
pie.DonutSize = .6;
plt.SaveFig("pie_donut.png");
文本甜甜圈
自定义文本可以显示在油炸圈饼图表的中心。请注意,在本例中,每个切片的颜色是如何定制的。
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 779, 586 };
string centerText = $"{values[0] / values.Sum() * 100:00.0}%";
Color color1 = Color.FromArgb(255, 0, 150, 200);
Color color2 = Color.FromArgb(100, 0, 150, 200);
var pie = plt.AddPie(values);
pie.DonutSize = .6;
pie.DonutLabel = centerText;
pie.CenterFont.Color = color1;
pie.OutlineSize = 2;
pie.SliceFillColors = new Color[] { color1, color2 };
plt.SaveFig("pie_donutText.png");
切片值
每个切片的值可以显示在其中心。
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 778, 43, 283, 76, 184 };
var pie = plt.AddPie(values);
pie.ShowValues = true;
plt.SaveFig("pie_showValues.png");
切片百分比
每个切片的百分比可以显示在其中心。
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 778, 43, 283, 76, 184 };
var pie = plt.AddPie(values);
pie.ShowPercentages = true;
plt.SaveFig("pie_showPercentage.png");
定制馅饼颜色
可以自定义饼片和标签的颜色。
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 778, 43, 283, 76, 184 };
string[] labels = { "C#", "JAVA", "Python", "F#", "PHP" };
// Language colors from https://github.com/ozh/github-colors
Color[] sliceColors =
{
ColorTranslator.FromHtml("#178600"),
ColorTranslator.FromHtml("#B07219"),
ColorTranslator.FromHtml("#3572A5"),
ColorTranslator.FromHtml("#B845FC"),
ColorTranslator.FromHtml("#4F5D95"),
};
// Show labels using different transparencies
Color[] labelColors =
new Color[] {
Color.FromArgb(255, Color.White),
Color.FromArgb(100, Color.White),
Color.FromArgb(250, Color.White),
Color.FromArgb(150, Color.White),
Color.FromArgb(200, Color.White),
};
var pie = plt.AddPie(values);
pie.SliceLabels = labels;
pie.ShowLabels = true;
pie.SliceFillColors = sliceColors;
pie.SliceLabelColors = labelColors;
plt.SaveFig("pie_customColors.png");
传说中的切片
切片可以在图例中标记。
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 778, 43, 283, 76, 184 };
string[] labels = { "C#", "JAVA", "Python", "F#", "PHP" };
var pie = plt.AddPie(values);
pie.SliceLabels = labels;
plt.Legend();
plt.SaveFig("pie_legend.png");
给所有东西贴上标签
切片可以用值、百分比和标签以及图例进行标记。
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 778, 43, 283, 76, 184 };
string[] labels = { "C#", "JAVA", "Python", "F#", "PHP" };
var pie = plt.AddPie(values);
pie.SliceLabels = labels;
pie.ShowPercentages = true;
pie.ShowValues = true;
pie.ShowLabels = true;
plt.Legend();
plt.SaveFig("pie_showEverything.png");
自定义切片标签
自定义切片标签可用于使用自定义格式显示值
var plt = new ScottPlot.Plot(600, 400);
double[] values = { 778, 43, 283, 76, 184 };
string[] labels = { "C#", "JAVA", "Python", "F#", "PHP" };
// modify labels to include a custom formatted value
labels = Enumerable.Range(0, values.Length)
.Select(i => $"{labels[i]}\n({values[i]})")
.ToArray();
var pie = plt.AddPie(values);
pie.SliceLabels = labels;
pie.ShowLabels = true;
plt.SaveFig("pie_customLabels.png");