实时显示折线图

使用微软Chart控件,实时显示温度数据。

 

 

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.IO;
using System.Windows.Forms.DataVisualization.Charting;

namespace 实时监控
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
            InitChart();
        }

        //初始化
        private void InitChart()
        {
            //设置series的样式
            Series series = chart1.Series[0];
            series.ChartType = SeriesChartType.Line;

            //设置X轴的样式
            chart1.ChartAreas[0].AxisX.ScaleView.Size = 5;
            chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss";
            chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
            chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = true;

            //设置Y轴的样式
            chart1.ChartAreas[0].AxisY.Minimum = 0;
            chart1.ChartAreas[0].AxisY.Maximum = 100;
        }

        //计时器   
        private void timer1_Tick(object sender, EventArgs e)
        {
            DateTime time = DateTime.Now;
            //随机数作为数据源
            Random random = new Random();
            Series series1 = chart1.Series[0];
            series1.Points.AddXY(time, random.Next(1, 100));
            //让轴视图显示在当前进度条位置
            chart1.ChartAreas[0].AxisX.ScaleView.Position = series1.Points.Count - 5;
        }

        //按钮 开始
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
        }

        //按钮 停止
        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
        }

    }
}

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Matplotlib库来绘制折线图,并使用PyQt的QTimer类来定时更新图形。以下是一个示例代码: ```python import sys import random import matplotlib.pyplot as plt from PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicy from PyQt5.QtCore import QTimer from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas class MainWindow(QMainWindow): def __init__(self): super().__init__() # 设置窗口大小 self.setGeometry(100, 100, 800, 600) # 创建一个Matplotlib图形并添加到窗口中 self.fig, self.ax = plt.subplots() self.canvas = FigureCanvas(self.fig) self.setCentralWidget(self.canvas) # 设置图形参数 self.ax.set_xlim(0, 100) self.ax.set_ylim(0, 100) self.ax.set_xlabel('X Axis') self.ax.set_ylabel('Y Axis') self.line, = self.ax.plot([], [], 'r-') # 创建一个定时器,每隔100ms更新一次图形 self.timer = QTimer() self.timer.timeout.connect(self.update_figure) self.timer.start(100) def update_figure(self): # 生成随机数据 x = list(range(100)) y = [random.randint(0, 100) for _ in range(100)] # 更新图形 self.line.set_data(x, y) self.canvas.draw() if __name__ == '__main__': app = QApplication(sys.argv) mainWindow = MainWindow() mainWindow.show() sys.exit(app.exec_()) ``` 这个示例程序创建了一个窗口,并在窗口中显示了一个折线图。程序通过定时器每隔100ms更新一次图形,每次更新图形时都会生成100个随机数据并将其绘制成折线图。你可以根据需要修改程序,使其满足你的要求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值