WinFrom 使用 LiveCharts 实现动态折线图

发布于:2025-05-15 ⋅ 阅读:(9) ⋅ 点赞:(0)

上方是Winfrom使用LiveCharts 插件实现的动态折线图,下面是实现步骤。

一、创建新项目

我这里使用的是.Net Framework4.6.1版本

二、添加引用包

这样就代表安装完成了

三、引用控件

四、逻辑代码 

using LiveCharts.Defaults;
using LiveCharts.Wpf;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LiveCharts
{
    public partial class Form1 : Form
    {
        //图表数据
        public ChartValues<ObservableValue> Values { get; set; }

        public Form1()
        {
            InitializeComponent();
            //初始化图表数据
            Values = new ChartValues<ObservableValue> { };
            //初始化定时器
            cartesianChart1.LegendLocation = LegendLocation.Right;
            timer1.Interval = 1000;
            timer1.Start();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            cartesianChart1.Series.Add(new LineSeries
            {
                Values = Values,  // 数据绑定到图表的系列
                StrokeThickness = 4,  // 设置折线图线条的粗细
                PointGeometrySize = 20,  // 设置每个数据点的大小,0表示不显示数据点
                DataLabels = true,  // 不显示数据标签
                Title = "模组实时温度",  // 设置系列标题
                Fill = System.Windows.Media.Brushes.Yellow,  // 设置折线图的填充颜色(即线条下面的区域)
                Stroke = System.Windows.Media.Brushes.Red,  // 设置折线的颜色

            });
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //创建一个随机数
            Random random = new Random();
            //插入数据到图表中
            Values.Insert(Values.Count, new ObservableValue(random.Next(20, 25)));
            //当图表中数据大于20条就删除第一条
            if (Values.Count > 20)
            {
                Values.RemoveAt(0);
            }
        }
    }
}