可绘制:饼图
 

饼图

饼图将数字比例表示为圆的切片。

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");