WinFrom 使用 LiveCharts 实现动态折线图
上方是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);}}}
}