首页 > 编程语言 >C# 绘制曲线的ScottPlot.NET

C# 绘制曲线的ScottPlot.NET

时间:2024-09-01 21:47:19浏览次数:5  
标签:C# void formsPlot1 System EventArgs NET ScottPlot Logger

 

ScottPlot 是一个免费的开源 .NET 绘图库,可以轻松交互式地显示大型数据集。折线图、条形图、饼图、散点图等只需几行代码即可创建。

ScottPlot - .NET 的交互式绘图库

ScottPlot 4.1 Demo   官方的demo是最好的学习例程

 解压后的文件清单如下,

 双击 ScottPlot.Demo.WinForms.exe,查看不同demo的效果

查找demo对应的源代码点击如下的连接到ScottPlot 官网

 再点击Github  跳转至 GitHub - ScottPlot/ScottPlot: Interactive plotting library for .NET

 例如我要查找 DataLogger的源码

 

 在Visual Studio 2017中利用Nuget包管理下载ScottPlot,如下图

在使用ScottPlot.NET之前需要了解VS基本的配置需求,不同版本的ScottPlot所需的.NET framework版本也不一样

 如上图我准备使用V4最高版本V4.174,根据依赖需求,我准备切换.NETFramework4.7.2,如何从.NETFramework4切换

到.NETFramework4.7.2,这里报错是因为缺少app.config的配置信息。

添加如下内容到app.config文件中

 参考demo的源码移植到自己的程序里

  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.Windows.Forms;
  9 
 10 
 11 namespace CMXM
 12 {
 13     public partial class Debug : Form
 14     {
 15 
 16         readonly System.Windows.Forms.Timer AddNewDataTimer = new Timer() { Interval = 10, Enabled = true };
 17         readonly System.Windows.Forms.Timer UpdatePlotTimer = new Timer() { Interval = 50, Enabled = true };
 18 
 19         readonly ScottPlot.Plottable.DataLogger Logger;
 20 
 21         readonly Random Rand = new Random();
 22 
 23         double LastPointValue = 0;
 24 
 25 
 26         public Debug()
 27         {
 28             InitializeComponent();
 29 
 30             Logger = formsPlot1.Plot.AddDataLogger(label: "trace");
 31 
 32             AddRandomWalkData(1000);
 33             btnFull_Click(null, EventArgs.Empty);
 34             cbView_CheckedChanged(null, EventArgs.Empty);
 35 
 36             AddNewDataTimer.Tick += (s, e) => AddRandomWalkData(10);
 37             UpdatePlotTimer.Tick += UpdatePlotTimer_Tick;
 38         }
 39 
 40         private void AddRandomWalkData(int count)
 41         {
 42             for (int i = 0; i < count; i++)
 43             {
 44                 LastPointValue = LastPointValue + Rand.NextDouble() - .5;
 45                 Logger.Add(Logger.Count, LastPointValue);
 46             }
 47         }
 48 
 49         private void UpdatePlotTimer_Tick(object sender, EventArgs e)
 50         {
 51             if (Logger.Count == Logger.CountOnLastRender)
 52                 return;
 53 
 54             formsPlot1.Refresh();
 55 
 56             this.metroTextBoxInfo.Text = $"DataLogger Demo ({Logger.Count:N0} points)";
 57         }
 58 
 59         private void cbView_CheckedChanged(object sender, EventArgs e)
 60         {
 61             Logger.ManageAxisLimits = cbEnableViewManagement.Checked;
 62 
 63             // disable mouse interaction if axis limits are managed automatically
 64             formsPlot1.Configuration.Pan = !cbEnableViewManagement.Checked;
 65             formsPlot1.Configuration.Zoom = !cbEnableViewManagement.Checked;
 66         }
 67 
 68         private void btnFull_Click(object sender, EventArgs e)
 69         {
 70             Logger.ViewFull();
 71             formsPlot1.Plot.Title("Full");
 72             formsPlot1.Refresh();
 73         }
 74 
 75         private void btnJump_Click(object sender, EventArgs e)
 76         {
 77             Logger.ViewJump();
 78             formsPlot1.Plot.Title("Jump");
 79             formsPlot1.Refresh();
 80         }
 81 
 82         private void btnSlide_Click(object sender, EventArgs e)
 83         {
 84             Logger.ViewSlide();
 85             formsPlot1.Plot.Title("Slide");
 86             formsPlot1.Refresh();
 87         }
 88 
 89         private void btnClear_Click(object sender, EventArgs e)
 90         {
 91             Logger.Clear();
 92             formsPlot1.Refresh();
 93         }
 94 
 95         private void chk_showLegend_CheckedChanged(object sender, EventArgs e)
 96         {
 97             formsPlot1.Plot.Legend(chk_showLegend.Checked);
 98             formsPlot1.Refresh();
 99         }
100     }
101 }

运行效果

 

标签:C#,void,formsPlot1,System,EventArgs,NET,ScottPlot,Logger
From: https://www.cnblogs.com/mickey-double/p/18353598

相关文章

  • Docker环境搭建以及常见问题
    Docker环境搭建主机环境要求在ubuntu16_20之间Docker安装和卸载apt安装方式#旧版本的dockersudoaptinstalldocker.iosudoapt-getpurgedocker.iosudorm-rf/var/lib/dockersudorm-rf/var/lib/containerd官方安装方式#首先安装一些依赖包,使得能够通过HTTPS......
  • TLC SSD强行关闭SLC缓存会怎样?
    如今的SSD不管是TLC闪存还是QLC闪存,都有SLC模拟缓存技术,在缓存内读写可以获得极高的速度。但你有没有想过,如果把这个功能关闭,会有什么变化?TechPowerUpSSD数据库维护者、资深内容编辑GabrielFerraz就做了一次试验,找来一块PichauAldrinPro2TBSSD,采用英韧IG5236主控、长江......
  • 041.CI4框架CodeIgniter,控制器过滤器Filter的使用
    01、我们在Filters目录,创建一个MyFilter.php文件<?phpnamespaceApp\Filters;useCodeIgniter\Filters\FilterInterface;useCodeIgniter\HTTP\RequestInterface;useCodeIgniter\HTTP\ResponseInterface;classMyFilterimplementsFilterInterface{publicfu......
  • router+firewall+switch
    1、网络拓扑图2、核心配置1)端口ip地址intg0/0/0ipaddress10.1.2.224intg1/0/0ipaddress10.1.1.1242)加入trustuntrustdmzfirewallzonetrustaddintg0/0/0firewallzoneuntrustaddintg1/0/03)security-policysecurity-policyrulenameintoout source-zonetru......
  • 容器存储接口--CSI
    目录一、背景二、CSI是什么三、CSI系统架构1、CSI如何与k8s组件相互通信2、CSI由哪些组件组成3、CSI的工作原理4、k8s存储中涉及的组件及其作用4.1、SidecarContainers4.1.1、external-attacher4.1.2、external-provisioner4.1.3、external-resizer4.1.4、external-snaps......
  • CF1826D
    CF1826D链接:Problem-1826D-Codeforces题目大意:给你一个数组,让你选择一个区间\([l,r]\)设选中的区间为\(b\),\(b_{i_1}+b_{i_2}+b_{i_3}\)为区间内前三大的值,你需要选择一个区间使得\(b_{i_1}+b_{i_2}+b_{i_3}-(r-l)\)值最大,输出最大值思路:我们发现......
  • CyberLink PowerDVD v23 激活版下载及安装教程
    前言CyberLinkPowerDVD是一款全球专业蓝光影音播放软件,新版全新64位播放引擎,改进了8K超清视频播放、更高分辨率高清视频处理,同时4K视频后期处理还新增了色彩校正、对比度增强、HDR等。另外,新版支持HEIC/HEIF图像格式,播放HDR视频时不再影响桌面HDR控制,改进了VRHMD播放规范,360度......
  • Gradio.NET 8 简化 Web 应用开发
    Gradio.NET支持.NET8简化Web应用开发 合集-.NET开源工具(7) 1..NET开源快捷的数据库文档查询和生成工具07-312..NET结果与错误处理利器FluentResults08-013..NET+WPF桌面快速启动工具GeekDesk08-194.Gradio.NET支持.NET8简化Web应用开发08-265..N......
  • Dbeaver community v24 激活版下载及安装教程
    安装步骤下载地址:1、点击运行dbeaver-ce-24.1.4-x86_64-setup.exe2、选定安装组件,默认就行3、选择安装路径,建议别安装在C盘,将“C”改成“D”4、安装完成,取消勾选5、点击右下角开始,点击Dbeaver运行6、启动成功......
  • Dbeaver community v24 激活版下载及安装教程
    安装步骤下载地址:1、点击运行dbeaver-ce-24.1.4-x86_64-setup.exe2、选定安装组件,默认就行3、选择安装路径,建议别安装在C盘,将“C”改成“D”4、安装完成,取消勾选5、点击右下角开始,点击Dbeaver运行6、启动成功......