编辑
2025-09-26
C#
00

目录

摘要
正文
箱体图
箱线图系列

摘要

箱线图,是一种用于显示数据分布的统计图表。它通过展示数据的中位数、四分位数、最小值和最大值等统计指标,帮助我们了解数据的位置、离散程度和异常值情况。

正文

nuget 安装scottPlot.winforms

一个典型的箱线图通常包含以下几个元素:

  1. 箱体(Box):箱体表示数据的四分位数,通常绘制为一个矩形框。箱体的上边界和下边界分别对应于数据的上四分位数(Q3)和下四分位数(Q1)。箱体内部的线段表示数据的中位数(Q2)。
  2. 须线(Whiskers):须线表示数据的范围,通常绘制为从箱体上下边界延伸出的线段。须线可以根据不同的定义方式来确定,例如最小值和最大值、1.5倍的四分位距、或者根据数据的分布情况进行自适应调整。
  3. 异常值(Outliers):在箱线图中,异常值是指远离箱体的离群数据点。异常值通常用单独的点或者小圆圈来表示,帮助我们识别数据中的异常情况。

通过观察箱线图,我们可以获得以下信息:

  • 数据的中位数,即数据的中心趋势。
  • 数据的四分位数,即数据的分布范围。
  • 数据的离散程度,通过观察须线的长度来判断。
  • 数据的异常值,通过观察离群点来识别。

在数据分析和可视化中,箱线图常用于比较不同组别或类别的数据分布情况,帮助我们发现差异和异常情况。

箱体图

image.png

C#
private void Form1_Load(object sender, EventArgs e) { var plot = formsPlot1.Plot; ScottPlot.Plottables.Box box1 = new ScottPlot.Plottables.Box { WhiskerMin = 1,//线的最低位置 BoxMin=10,//箱体的最低位置 BoxMiddle=20,//箱体的中间位置 BoxMax =30,//箱体的最高位置 WhiskerMax = 40//线的最高位置 }; ScottPlot.Plottables.Box box2 = new ScottPlot.Plottables.Box { WhiskerMin = 3, BoxMin = 5, BoxMiddle = 20, BoxMax = 30, WhiskerMax = 32 }; List<ScottPlot.Plottables.Box> boxes = new List<ScottPlot.Plottables.Box>() { box1, box2, }; plot.Add.Box(boxes); }

横向显示

image.png

C#
//修改为横向显示 var boxplot= plot.Add.Box(boxes); boxplot.Groups.Orientation = ScottPlot.Orientation.Horizontal;

箱线图系列

用于绘制多个箱线图的数据类型。它允许您同时显示多个数据集的箱线图,以便进行比较和分析。

Box Plot Series由一个或多个箱线图数据组成,每个箱线图数据包含了一个数据集的统计信息,例如中位数、四分位数、最小值和最大值等。通过绘制多个箱线图数据,您可以在同一图表中对比不同数据集的分布情况。

image.png

C#
private void Form1_Load(object sender, EventArgs e) { Random random = new Random(); var plot = formsPlot1.Plot; //两个一组 var colorPalette = new ScottPlot.Palettes.Category10(); ScottPlot.Plottables.BoxGroup[] series = new ScottPlot.Plottables.BoxGroup[3]; for (int i = 0; i < 3; i++) { series[i] = new BoxGroup() { Fill = new FillStyle { Color = colorPalette.Colors[i % colorPalette.Colors.Length] }, Boxes = new ScottPlot.Plottables.Box[2],//定义几个一系列 }; List<ScottPlot.Plottables.Box> boxes = new List<ScottPlot.Plottables.Box>(); for (int j = 0; j < 2; j++) { ScottPlot.Plottables.Box box1 = new ScottPlot.Plottables.Box { WhiskerMin = random.Next(0, 10),//线的最低位置 BoxMin = random.Next(10, 20),//箱体的最低位置 BoxMiddle = random.Next(14, 30),//箱体的中间位置 BoxMax = random.Next(25, 40),//箱体的最高位置 WhiskerMax = random.Next(35, 40)//线的最高位置 }; series[i].Boxes[j] = box1;//将box加载到系列中 } } var boxplot = plot.Add.Box(series); }

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!