上方是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);
}
}
}
}