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 中编写如下代码:

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);
        }
    }
}
相关推荐
阿珊和她的猫4 小时前
v-scale-scree: 根据屏幕尺寸缩放内容
开发语言·前端·javascript
fouryears_234176 小时前
Flutter InheritedWidget 详解:从生命周期到数据流动的完整解析
开发语言·flutter·客户端·dart
我好喜欢你~7 小时前
C#---StopWatch类
开发语言·c#
lifallen8 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研8 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
cui__OaO10 小时前
Linux软件编程--线程
linux·开发语言·线程·互斥锁·死锁·信号量·嵌入式学习
鱼鱼说测试10 小时前
Jenkins+Python自动化持续集成详细教程
开发语言·servlet·php
艾莉丝努力练剑11 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
一阵没来由的风11 小时前
拒绝造轮子(C#篇)ZLG CAN卡驱动封装应用
c#·can·封装·zlg·基础封装·轮子
CHEN5_0211 小时前
【Java基础面试题】Java基础概念
java·开发语言