当前位置: 首页 > news >正文

C#中用 OxyPlot 在 WinForms 实现波形图可视化(附源码教程)

        今天给大家安利一个超级实用的绘图控件库——OxyPlot,配合WinForms使用,让你轻松绘制专业级图表!

        本文将手把手教你如何搭建一个简单的波形图显示窗口,完整步骤 + 源码解析,建议收藏!

项目搭建步骤(超详细)

新建项目

  1. 打开 Visual Studio
  2. 选择“创建新项目”
  3. 选择“Windows 窗体应用(.NET Framework)”

  4. 起个名字,比如 WaveformPlotDemo

  5. 点击“下一步”,完成创建

配置 OxyPlot

  • 下载 OxyPlot 的依赖包

https://pan.baidu.com/s/19hkJiR9nK60vGsBGgapwHw?pwd=rksh

  • 解压放到你的项目文件夹下

  • 右键“依赖项” -> “添加项目引用” -> 找到解压位置 -> 添加 DLL 文件

  • 点击“确定”。 接下来,安装 NuGet 包: 点击工具->NuGet包管理器->管理解决方案的NuGet包

  • 搜索 OxyPlot.WindowsForms → 点击“安装”

这样,我们的环境就配置完成啦!

界面设计与代码实现

我们不使用拖控件的方式,而是直接用代码方式添加 PlotView 控件,实现更加灵活的图形界面设计。

Form1.cs 中编写如下代码:

using System;
using System.Windows.Forms;
using OxyPlot;
using OxyPlot.Series;
using OxyPlot.WindowsForms;
using OxyPlot.Axes;namespace WinFormsApp1
{public partial class Form1 : Form{public Form1(){InitializeComponent();InitializePlot(); // 初始化图表}private void InitializePlot(){PlotView plotView = new PlotView { Dock = DockStyle.Fill };PlotModel plotModel = new PlotModel{Title = "Demod BaseBand Waveform",PlotMargins = new OxyThickness(60, 40, 60, 40),Background = OxyColors.Black,TextColor = OxyColors.White};var xAxis = new LinearAxis{Position = AxisPosition.Bottom,Title = "Time",Minimum = 0,Maximum = 2000,IsZoomEnabled = true,MajorGridlineStyle = LineStyle.Solid,MajorGridlineColor = OxyColors.White};var yAxis = new LinearAxis{Position = AxisPosition.Left,Title = "Amplitude",Minimum = -0.8,Maximum = 0.8,MajorStep = 0.2,IsZoomEnabled = false,IsPanEnabled = false,AbsoluteMinimum = -0.8,AbsoluteMaximum = 0.8,MajorGridlineStyle = LineStyle.Solid,MajorGridlineColor = OxyColors.White};plotModel.Axes.Add(xAxis);plotModel.Axes.Add(yAxis);plotView.Model = plotModel;this.Controls.Add(plotView);}}
}

http://www.xdnf.cn/news/113617.html

相关文章:

  • OpenCV 图形API(61)图像特征检测------检测图像边缘的函数Canny()
  • 认识游戏循环
  • 把dll模块注入到游戏进程的方法_插APC注入
  • 如何创建一个父类 Maven项目,然后在父类下再创建子项目,构建多模块 Maven 项目
  • Explain详解与索引最佳实践
  • day 32 学习笔记
  • 第七部分:向量数据库和索引策略
  • 【Pandas】pandas DataFrame pow
  • docker容器监控自动恢复
  • TKDE 2025年第3期研究热点与最新趋势
  • 中心极限定理(CLT)习题集 · 题目篇
  • 零基础上手Python数据分析 (22)案例实战]之利用 Matplotlib Seaborn 进行电商销售数据可视化分析
  • 罗伯·派克:Go语言创始者的极客人生
  • 人工智能与机器学习:二元分类决策树构建指南
  • Linux内核netlink机制 - 连接器(Netlink Connector)
  • ETL 数据集成都包含哪些?
  • 77. 组合
  • 【OpenGL with C++】1.使用CMake+GLFW+GLAD在Window搭建项目
  • Linux系统之----进程优先级、调度与切换
  • 基于 EFISH-SBC-RK3588 的无人机多光谱/红外热成像边缘计算方案
  • MyBatis操作数据库---从入门到理解
  • Python爬虫第19节-动态渲染页面抓取之Splash使用下篇
  • centos7使用certbot完成nginx ssl证书续期
  • 最高支持高速L3商用,华为发布ADS 4智驾系统
  • 【OSG学习笔记】Day 8: 纹理贴图——赋予模型细节
  • MCU通信接口技术解析:UART、SPI与I2C
  • 【云计算】云计算中IaaS、PaaS、SaaS介绍
  • 基于 springboot+vue+elementui 的办公自动化系统设计(
  • 系统与网络安全------弹性交换网络(3)
  • Unity MR开发:探索混合现实的无限可能 (VisionPro和HoloLens 2 对比)