编辑
2025-09-26
C#
00

目录

创建 Windows 窗体应用程序
完整代码
总结

本文将教程你如何使用ScottPlot绘制一个动态时序图。我们会创建一个简单的Windows窗体应用程序,并利用ScottPlot实现一个不断更新的时序图。

创建 Windows 窗体应用程序

首先,我们需要创建一个Windows窗体应用程序,然后在窗体上放置一个FormsPlot控件,接下来的步骤如下:

  1. 打开Visual Studio并创建一个新的Windows Forms应用程序项目。
  2. 通过NuGet包管理器安装ScottPlot库:这里用的版本是5.0.35
C#
Install-Package ScottPlot Install-Package ScottPlot.WinForms
  1. 在工具箱中找到 FormsPlot 控件并将其拖到你的窗体上。

完整代码

C#
using ScottPlot; using ScottPlot.Plottables; namespace AppScott { public partial class Form1 : Form { System.Windows.Forms.Timer timer; List<DateTime> dataX = new List<DateTime>(); List<double> dataY = new List<double>(); int k = 0; public Form1() { InitializeComponent(); InitializeChart(); //设置字体,防止中文乱码,这个方法以前是 plot.Style.SetFont("SimSun"); formsPlot1.Plot.Font.Set("SimSun"); timer = new System.Windows.Forms.Timer(); timer.Interval = 1000; timer.Tick += Timer_Tick; timer.Start(); } private void Timer_Tick(object? sender, EventArgs e) { UpdateChart(); } private void InitializeChart() { formsPlot1.Plot.Axes.DateTimeTicksBottom(); // 启用日期时间格式 formsPlot1.Plot.RenderManager.RenderStarting += (s, e) => { Tick[] ticks = formsPlot1.Plot.Axes.Bottom.TickGenerator.Ticks; for (int i = 0; i < ticks.Length; i++) { DateTime dt = DateTime.FromOADate(ticks[i].Position); string label = dt.ToString("HH:mm:ss"); ticks[i] = new Tick(ticks[i].Position, label); } }; formsPlot1.Plot.Axes.SetLimits(0, 1, 20, 30); formsPlot1.Plot.XLabel("时间"); formsPlot1.Plot.YLabel("温度[°C]"); formsPlot1.Plot.Title("温度监控"); } private void UpdateChart() { DateTime now = DateTime.Now; Random rand = new Random(); double newValue = rand.NextDouble() * 10 + 20; // Random Value between 20 and 30 if (dataX.Count == 100) { dataX.RemoveAt(0); dataY.RemoveAt(0); } dataX.Add(now); dataY.Add(newValue); formsPlot1.Plot.Clear(); // 清除之前的绘图 formsPlot1.Plot.Add.Scatter(dataX.ToArray(), dataY.ToArray(), color: Colors.Red); formsPlot1.Plot.Axes.AutoScale(); formsPlot1.Refresh(); } } }

image.png

总结

本文介绍了如何使用ScottPlot库在C# Windows窗体应用程序中创建一个动态时序图。通过定时器和随机数据,我们实现了一个不断更新的动态图像。ScottPlot库非常易于使用且功能强大,可以很方便地生成各种类型的图表。希望这篇文章对你有所帮助!

本文作者:技术老小子

本文链接:

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