如何在.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窗体。
