测量小百科 | ScottPlot免费开源的绘图控件(上)
来源: | 作者:JYTEK | 发布时间: 2022-05-24 | 982 次浏览 | 分享到:

关键词:ScottPlot、.NET、控件、免费、开源

 

导读

ScottPlot是一个免费和开源的.NET绘图库,可以轻松地交互显示大型数据集。

开源地址:https://github.com/ScottPlot/ScottPlot

使用手册:https://scottplot.net/cookbook/该组件主要有以下特点:

1. 适用于WinForms、WPF、Avalonia、Console,支持.NET Framework4.6.1及以上;

2. 上手简单:只需几行代码即可创建折线图、条形图、饼图、散点图等;

3. 性能强悍:千万级数据处理无压力;

4. 可交互:支持用户和图表数据进行交互;

5. 开源免费:基于MIT开源协议;

6. 组件丰富:图表组件非常全面,可满足各种场景下的展示需求。

 

安装流程

1. 创建工程后,选中解决方案名称,右键后点击“管理NuGet程序包”,如图1

图 1   点击“管理NuGet程序包”

 

2. 在搜索栏中输入“scottplot”,如图2中红框1;

点击ScottPlot.WinForms栏后的下载箭头,如图中2红框2

图 2   下载“ScottPlot.WinForms”

 

3. 安装ScottPlot.WinForms,点击“OK”,如图3

图 3   安装


接受许可证,点击“I Accept“,如图4

图 4   接受许可证

 

4. 安装完成,如图5

图 5   安装完成

 

5. 点击顶端“视图“,再选择“工具箱“,如图6

图 6   打开“工具箱”

 

完成FormsPlot控件的添加,如图7

 7  FormsPlot控件

 

注意事项

1. 若正确安装ScottPlot.WinForms后,打开工具箱未找到FormsPlot控件,请点击首页顶端的项目,再选择刷新项目工具箱项,如图8

图 8   刷新工具箱

 

2. 需要保证自己的.NET环境符合图2-9ScottPlot.WinForms依赖项要求,否则无法正常使用,如图9

图 9   ScottPlot.WinForms依赖项要求

 

演示

1. 选中工具箱FormsPlot控件,将其拖入Form页面,如图10

图 10   添加FormsPlot控件

 

完成添加,如图11

图 11   完成添加

 

2. Form页面中添加一个button控件,点击button后生成一列正弦信号,同时在ScottPlot控件上显示,如图12

图 12  Demo

 

运行界面如图13

图 13   运行界面

 

参考代码如下

1. using System;  

2. using System.Collections.Generic;  

3. using System.ComponentModel;  

4. using System.Data;  

5. using System.Drawing;  

6. using System.Linq;  

7. using System.Text;  

8. using System.Threading.Tasks;  

9. using System.Windows.Forms;  

10. using ScottPlot;//添加引用

11. using SeeSharpTools.JY.DSP.Fundamental;  

12.   

13. namespace Demo  

14. {  

15.     public partial class Form1 : Form  

16.     {  

17.         public Form1()  

18.         {  

19.             InitializeComponent();  

20.         }  

21.   

22.         private void button_Start_Click(object sender, EventArgs e)  

23.         {  

24.             //生成一个幅值为2,初始相位为0,频率为100Hz的正弦波  

25.             double[] sinewaveData = new double[1000];  

26.             Generation.SineWave(ref sinewaveData, 2,0,100,10000);  

27.   

28.             //1.创建对象

29.             var plt = formsPlot1.Plot;  

30.             //2.设置ScottPlotX

31.             double[] xs = DataGen.Consecutive(1000);  

32.             //3.将数据按XY轴显示为散点图

33.             plt.AddScatter(xs, sinewaveData);  

34.             //4.修改ScottPlot的标题  

35.             plt.Title("JYTEK");  

36.             //5.刷新  

37.             formsPlot1.Refresh();  

38.         }  

39.     }  

40. }