VB.NET 使用CHART控件做实时曲线

news/2024/12/29 12:34:42/

VB.NET 使用CHART 控件做实时曲线

本人初学vb.net 编程,因一工程需要将现场数据采集过来,并以实时曲线的方式,显示出来,顾写了个例子程序,供大家参考,不对的地方请大家指正,谢谢!
这是正常运行后的效果图
废话不多说,下面是整个代码,希望能够帮到大家。


Imports System.Windows.Forms.DataVisualization.ChartingPublic Class Form1'//定义曲线1X轴变量为时间Private X1(19) As String'//定义曲线1Y轴变量为瞬时流量Private Y1(19) As Double'//定义曲线2X轴变量为时间Private X2(19) As String'//定义曲线2Y轴变量为瞬时流量Private Y2(19) As Double'//定义画图区域变量Private fluxArea As ChartArea'//定义Serial对象Private fluxLine1 As SeriesPrivate fluxLine2 As Series'//定义Legends对象Private fluxLegend As LegendPrivate Sub InitChartSet()'//初始化Chart对象设置'//设置控件背景色Chart1.BackColor = Color.Black'//定义标题对象变量Dim ChartTitle As New Title'//设置Title信息With ChartTitle.Text = "皮带秤流量实时曲线".ForeColor = Color.Yellow.Font = New System.Drawing.Font("微软雅黑", 16.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))End With'//清除所有标题对象Chart1.Titles.Clear()Chart1.Titles.Add(ChartTitle)'//清空画图区域Chart1.ChartAreas.Clear()'//创建chartarea对象实例fluxArea = New ChartArea("fluxArea")'//将定义的画图区域添加到chartChart1.ChartAreas.Add(fluxArea)'//设置显示区域With fluxArea'//设置背景颜色为黑色.BackColor = Color.Black'//设置X轴最小值.AxisX.Minimum = 1'//设置X轴最大值.AxisX.Maximum = 20'//设置X轴.AxisX.Interval = 1'//设置X轴标题.AxisX.Title = "时间"'//设置X轴标题字体.AxisX.TitleFont = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))'//设置X轴线宽.AxisX.LineWidth = 3'//设置X轴颜色.AxisX.LineColor = Color.Green'//设置X轴线型.AxisX.LineDashStyle = ChartDashStyle.Solid'//设置X轴标题对齐.AxisX.TitleAlignment = StringAlignment.Center'//设置X轴标题颜色.AxisX.TitleForeColor = Color.Yellow'//设置X轴网格刻度线.AxisX.MajorGrid.LineColor = Color.Green'//设置X轴网格刻度线宽度.AxisX.MajorGrid.LineWidth = 1'//设置X轴网格刻度线样式.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dash'//设置X轴刻度线颜色.AxisX.MajorTickMark.LineColor = Color.Green'//设置X轴刻度线长度.AxisX.MajorTickMark.Size = 2'//设置X轴刻度线宽度.AxisX.MajorTickMark.LineWidth = 2'//设置X轴刻度线样式.AxisX.MajorTickMark.LineDashStyle = ChartDashStyle.Solid'//设置X轴刻度线位置.AxisX.MajorTickMark.TickMarkStyle = TickMarkStyle.OutsideArea'//设置X轴标签颜色.AxisX.LabelStyle.ForeColor = Color.LawnGreen'//设置Y轴最小值.AxisY.Minimum = 0D'//设置Y轴最大值.AxisY.Maximum = 150D'//设置Y轴标题.AxisY.Title = "皮带秤瞬时流量"'//设置Y轴标题字体.AxisY.TitleFont = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))'//设置X轴线宽.AxisY.LineWidth = 3'//设置X轴颜色.AxisY.LineColor = Color.Green'//设置X轴线型.AxisY.LineDashStyle = ChartDashStyle.Solid'//设置Y轴标题对齐.AxisY.TitleAlignment = StringAlignment.Center'//设置Y轴标题颜色.AxisY.TitleForeColor = Color.Yellow'//设置Y轴网格刻度线.AxisY.MajorGrid.LineColor = Color.Green'//设置Y轴网格刻度线宽度.AxisY.MajorGrid.LineWidth = 1'//设置Y轴网格刻度线样式.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash'//设置X轴刻度线颜色.AxisY.MajorTickMark.LineColor = Color.Green'//设置X轴刻度线长度.AxisY.MajorTickMark.Size = 2'//设置X轴刻度线宽度.AxisY.MajorTickMark.LineWidth = 2'//设置X轴刻度线样式.AxisY.MajorTickMark.LineDashStyle = ChartDashStyle.Solid'//设置X轴刻度线位置.AxisY.MajorTickMark.TickMarkStyle = TickMarkStyle.OutsideArea'//设置Y轴标签颜色.AxisY.LabelStyle.ForeColor = Color.LawnGreenEnd With'//创建Legends对象实例fluxLegend = New Legend("fluxLegend")'//设置Legends对象With fluxLegend'//设置图例停靠位置为自动.Position.Auto = True'//设置图例对齐方式为居中.Alignment = StringAlignment.Center'//设置图例停靠位置为底部.Docking = Docking.Bottom'//设置图例的背景色为透明.BackColor = Color.Transparent'//设置图例的字体颜色为白色.ForeColor = Color.White'//设置图例字体.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))End With'//清除默认LegendsChart1.Legends.Clear()Chart1.Legends.Add(fluxLegend)'//创建series对象实例fluxLine1 = New Series("fluxLine1")fluxLine2 = New Series("fluxLine2")'//设置Serial对象1With fluxLine1'//设置线型.ChartType = SeriesChartType.Spline'//设置画线区域.ChartArea = "fluxArea"'//设置画线的宽度.BorderWidth = 3'//设置画线颜色.Color = Color.LawnGreen'//设置画线阴影.ShadowOffset = 1'//设置图示文字.LegendText = "4A路皮带秤"'//设置图例属性.Legend = "fluxLegend"End With'//设置Serial对象2With fluxLine2'//设置线型.ChartType = SeriesChartType.Spline'//设置画线区域.ChartArea = "fluxArea"'//设置画线的宽度.BorderWidth = 3'//设置画线颜色.Color = Color.Red'//设置画线阴影.ShadowOffset = 1'//设置图示文字.LegendText = "4B路皮带秤"'//设置图例属性.Legend = "fluxLegend"End With'//清除默认seriesChart1.Series.Clear()'//将定义好的曲线对象添加到chartChart1.Series.Add(fluxLine1)Chart1.Series.Add(fluxLine2)End SubPrivate Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load'//InitChartSet()End SubPrivate Sub InitChartData()'// 设置初始数据Dim i As Integer = 0For i = 0 To 19X1(i) = Format(Now(), "HH:mm:ss")X2(i) = Format(Now(), "HH:mm:ss")Y1(i) = 0Y2(i) = 0Next'//显示数据Chart1.Series("fluxLine1").Points.DataBindXY(X1, Y1)Chart1.Series("fluxLine2").Points.DataBindXY(X2, Y2)End SubPrivate Sub RefreshChartData()'// 更新曲线数据Dim i As IntegerFor i = 0 To 18X1(i) = X1(i + 1)X2(i) = X2(i + 1)Y1(i) = Y1(i + 1)Y2(i) = Y2(i + 1)NextY1(19) = Math.Round(100 * Rnd(100) * 1.0264, 2)X1(19) = Format(Now(), "HH:mm:ss")Y2(19) = Math.Round(100 * Rnd(100) * 1.0264, 2)X2(19) = Format(Now(), "HH:mm:ss")Chart1.Series("fluxLine1").Points.DataBindXY(X1, Y1)Chart1.Series("fluxLine2").Points.DataBindXY(X2, Y2)End SubPrivate Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.ClickInitChartData()Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.TickRefreshChartData()End Sub
End Class

http://www.ppmy.cn/news/917464.html

相关文章

【编程常识】关于 Visual Basic 6.0 语言

什么是 Visual Basic 6.0? Visual basic 6.0是一种由微软公司开发的包含协助开发环境的事件驱动编程语言,它源自于BASIC编程语言,拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统&#xff0…

Vb中数据库编程对象——ADO

先来一张胜过千言万语的图: 从上图我们可以清楚的看出ADO是数据库与应用程序交流的桥梁,他有承上启下的作用,对底层数据库的类型和上层数据消费者的类型支持性很强大! ADO是(Activex Data Objects)的简称,属于ActiveX数据对象,是Microsoft提出的应用程序接口用以实现访…

VB编程:UCase转大写,LCase转小写-4

Private Sub Text1_Change() Text2.Text LCase(Text1.Text) 转换成小写字母 Text3.Text UCase(Text1.Text) 转换成大写字母 End Sub Private Sub Command1_Click() End End Sub 界面效果:

Android游戏破解 入门级零基础起步学习破解!MT管理器+修改器使用方法 小白看了绝对有用

认真看了多多少少可以学到点东西 大神勿喷 首先,我们要知道破解一个游戏需要分析它的apk,于是我们需要用到MT管理器(因为我是从MT开始的),这个度娘一下可以出来。另外,手机要root)安装了MT管理器之后,我们就可以开始学…

VB 6.0 精确到毫秒的计时器 demo

工作需要,研究了一个精确到毫秒的计时器。 起因是VB的timer在间隔设置为100ms以下时不能准确的运行,所以不能用1ms为周期去执行毫秒的加一。 然后根据http://wenwen.sogou.com/z/q170447361.htm 这个受到启发 采用读取系统时间来进行计算。 在vb中新建…

VB.net小技巧——使用DataGridView显示EXECL表格内容

VB.net小技巧——使用DataGridView显示EXECL表格内容 直接上代码 Private Sub Button24_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button24.ClickDim fileDialog As OpenFileDialog New OpenFileDialog()fileDialog.InitialDirectory My.…

VB 6.0 可以使用MQTT

前段时间,承接了一个项目,软件开发的,时间紧,就用VB扣了一个。后来用户提出要把数据传输到他们的MQTT服务器上进行分发,就用VB 6.0的代码又扣了个几天,弄出来个能和MQTT Broker 进行通信的 VB 6.0 的程序。…

VB编程语言基础知识点总结(转)

Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。海风教育投诉 海风教育在线辅导0元一对一试听课等你来领取&#…