如何在.NET WinForms中用ScottPlot快速展示海量数据集的交互式图表?

摘要:前言 在.NET应用开发中数据集的交互式显示是一个非常常见的功能,如需要创建折线图、柱状图、饼图、散点图等不同类型的图表将数据呈现出来,帮助人们更好地理解数据、发现规律,并支持决策和沟通。本文我们将一起来学习一下如何使用ScottPlot库
前言 在.NET应用开发中数据集的交互式显示是一个非常常见的功能,如需要创建折线图、柱状图、饼图、散点图等不同类型的图表将数据呈现出来,帮助人们更好地理解数据、发现规律,并支持决策和沟通。本文我们将一起来学习一下如何使用ScottPlot库在.NET WinForms中快速实现大型数据集的交互式显示。 ScottPlot类库介绍 ScottPlot是一个免费、开源(采用MIT许可证)的强大.NET交互式绘图库,能够轻松地实现大型数据集的交互式显示。使用几行代码即可快速创建折线图、柱状图、饼图、散点图等不同类型的图表。 ScottPlot类库支持平台和框架 Console Application、WinForms、WPF、Avalonia、Blazor、WinUI等多个平台和框架。 ScottPlot类库源代码 新建WinForms项目 新建一个名为ScottPlotWinFormsExercise的项目。 安装ScottPlot.WinForms包 搜索ScottPlot.WinForms包安装: 折线图实现 创建名为:LineChart窗体。 将FormsPlot (ScottPlot.WinForms)从工具箱拖到窗体中: 输入以下代码: publicpartialclassLineChart:Form { publicLineChart() { double[]dataX=GetRandomNum(20).Distinct().OrderByDescending(x=>x).ToArray(); double[]dataY=GetRandomNum(19).Distinct().OrderByDescending(x=>x).ToArray(); formsPlot1.Plot.Add.Scatter(dataX,dataY); formsPlot1.Refresh(); } publicdouble[]GetRandomNum(intlength) { double[]getDate=newdouble[length]; Randomrandom=newRandom();//创建一个Random实例 for(inti=0;i<length;i++) { getDate[i]=random.Next(1,100);//使用同一个Random实例生成随机数 } returngetDate; } } 运行效果展示: 柱状图实现 创建名为:BarChart窗体。 将FormsPlot (ScottPlot.WinForms)从工具箱拖到窗体中: 输入以下代码: publicpartialclassBarChart:Form { publicBarChart() { double[]values={5,10,7,13,22,18,33,16}; formsPlot1.Plot.Add.Bars(values); formsPlot1.Refresh(); } } 运行效果展示: 饼图实现 创建名为:PieChart窗体。 将FormsPlot (ScottPlot.WinForms)从工具箱拖到窗体中: 输入以下代码: publicpartialclassPieChart:Form { publicPieChart() { double[]values={3,2,8,4,8,10}; formsPlot1.Plot.Add.Pie(values); formsPlot1.Refresh(); } } 运行效果展示: 散点图实现 创建名为:ScatterChart窗体。
阅读全文