使用 Winform chart 绘制大数据量波形图,带缩放功能

我这的需求是使用Winform自带的chart控件,完成多路信号的显示,可以放大。缩小查看数据。好了。先上张图:

点击查看数据按钮,将生成的模拟信号数据显示出来。一共是52路信号,每个长度是1600。

用鼠标点击想要放大的区域:

放大后效果:

然后点击圆圈处即可返回。以下是控件的核心代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace DemoSharp
{
    public partial class RealChart : Form
    {
        private List<double> dataQueue = new List<double>(10000);


        public RealChart()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 开始事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStart_Click(object sender, EventArgs e)
        {
            InitChart();
            Random r = new Random();  
            for (int j = 0;j < 52; j++)
            {
                for (int i = 0; i < 1600; i++)
                {
                    this.chart1.Series[j].Points.AddXY((i + 1), r.Next(j, j + 2) + j);
                }
            }
        } 
        
        /// <summary>
        /// 初始化图表
        /// </summary>
        private void InitChart() {
            //定义图表区域
            this.chart1.ChartAreas.Clear();
            ChartArea chartArea1 = new ChartArea("C1");
            this.chart1.ChartAreas.Add(chartArea1);
            //定义存储和显示点的容器
            this.chart1.Series.Clear();
            for (int i = 0; i < 52;i++)
            {
                Series series1 = new Series(i.ToString());
                series1.ChartArea = "C1";
                this.chart1.Series.Add(series1);
                this.chart1.Series[i].Color = Color.Green;
                this.chart1.Series[i].ChartType = SeriesChartType.StepLine;
            }

            //设置图表显示样式
            this.chart1.ChartAreas[0].AxisX.ScaleView.Zoom(2,3);
            this.chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
            this.chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
            this.chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
            //将滚动内嵌到坐标轴中
            this.chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
            // 设置滚动条的大小
            this.chart1.ChartAreas[0].AxisX.ScrollBar.Size = 10;
            // 设置滚动条的按钮的风格,下面代码是将所有滚动条上的按钮都显示出来
            this.chart1.ChartAreas[0].AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.All;
            this.chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSize = double.NaN;
            this.chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSize = 2;
            this.chart1.ChartAreas[0].AxisY.Minimum = 0;
            this.chart1.ChartAreas[0].AxisY.Maximum =120;
            this.chart1.ChartAreas[0].AxisX.Interval = 200;
            this.chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.Silver;
            this.chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.Color.Silver;
            //设置标题
            this.chart1.Titles.Clear();
            this.chart1.Titles.Add("S01");
            this.chart1.Titles[0].Text = "数据显示";
            this.chart1.Titles[0].ForeColor = Color.RoyalBlue;
            this.chart1.Titles[0].Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
            
        }
        
    }
}

以下是工程链接地址:https://download.csdn.net/download/chulijun3107/11349366

资源设置为0C币了。可以直接去下载了。喜欢的给我点个赞或关注。

  • 26
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 126
    评论
### 回答1: Winform chart可以用来动态显示波形,这个过程主要分为四个步骤:数据采集、数据传输、波形绘制和显示优化。 第一步,是采集数据。要显示波形,首先需要采集数据源,数据源可以是外部设备产生的模拟信号,也可以是计算机程序内部产生的数字信号。在这一步中,可以采用传统的数据采集卡或者USB接口来实现数据采集,也可以直接使用第三方软件库来完成数据采集。 第二步,是进行数据传输。采集到数据后,需要将数据传输到波形绘制界面,常用的传输方式有TCP/IP、串口和USB等。在这一步中,可以采用第三方软件库来实现数据传输,也可以自己编写实现相关的代码。 第三步,是进行波形绘制。当数据传输到波形绘制界面后,需要对数据进行解码,并将解码后的数据绘制到波形界面上。在这一步中,可以使用第三方绘图库或者直接使用Winform chart控件来完成波形绘制。 第四步,是进行显示优化。在实际应用中,波形往往要显示大的数据,如果不进行优化,会降低软件的运行效率和稳定性。在这一步中,可以通过使用缓存、批处理、线程异步处理等方案来优化波形显示效果。 综上所述,Winform chart可以用来动态显示波形,需要实现的主要步骤是数据采集、数据传输、波形绘制和显示优化。当然,在不同的应用场景下,具体的实现方案可能会有所区别。 ### 回答2: Winform Chart是一种用于在Windows Forms应用程序中显示和可视化数据的组件。如果我们要动态地显示波形,可以使用Winform Chart的实时数据显示功能。 实现实时数据显示的步骤如下: 1. 创建一个Winform Chart控件,并设置其类型为Line(线性图)或FastLine(快速线性图)。 2. 创建一个定时器并设置其Interval属性以指定更新频率。每次定时器触发时,我们从数据源中获取最新的数据,并将其添加到Winform Chart控件的数据源中。 3. 设置Winform Chart控件的X轴和Y轴的范围,以确保每次添加新数据时,它们都能被正确地显示。 4. 如果要实现滚动波形效果,我们可以在定时器触发时,将当前坐标轴的最小值向右移动一个像素,并在新的位置显示最新的数据。这样,就可以不停地往右滚动显示波形了。 总的来说,使用Winform Chart控件实现波形的动态展示非常简单、直观,而且非常适用于需要实时监控和显示数据的应用场景,比如智能家居、工厂自动化、机器人等领域。 ### 回答3: 在Winform中,我们可以使用Chart控件来动态显示波形。Chart控件是一种专门用于数据可视化的控件,在Winform中广泛应用于数据分析和统计等方面。其主要特点是可以方便地显示各种类型的图表,包括折线图、柱状图、饼状图等,而且可以通过编程实现图表的动态刷新,支持数据实时更新。 要实现动态显示波形,我们可以通过以下步骤来完成: 1. 创建一个Chart控件,并设置其大小、位置等属性。 2. 添加一个Series对象作为波形的曲线,这里我们可以选择Line类型的曲线。 3. 通过调用Chart控件的DataBind方法,将数据绑定到Series对象上。 4. 在程序运行过程中,根据实际情况动态更新数据,并调用Chart控件的Refresh方法实现曲线的实时更新。 在实际开发中,我们可以使用Timer控件来定时更新数据,并触发Chart控件的Refresh方法,从而实现波形的动态显示。同时,我们还需要考虑如何对数据进行处理和格式化,以便更好地呈现在波形上。 总之,Winform Chart控件提供了一种方便且有力的方式来动态显示波形,通过灵活的编程和数据处理,我们可以实现各种类型的数据可视化,在实时监测和数据分析等方面发挥重要作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 126
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楚楚3107

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值