LiveCharts 是一个开源的 .NET 图表库,特别适用于 WPF、WinForms 和其他 .NET 平台。它提供了丰富的图表类型和功能,使开发者能够轻松地在应用程序中创建动态和交互式图表。下面我将使用WPF平台创建一个测试实例。
一、LiveCharts的安装和使用
1.安装NuGet程序包
- 右键项目,点击管理 NuGet程序包

- 搜索LiveCharts并安装LiveCharts.WPF程序包

2.LiveCharts的功能
博主讲解了多种图表的使用:
WPF—LiveCharts图表_wpf livecharts-优快云博客
- 折线图 (Line Chart)
- 柱状图 (Column Chart)
- 条形图 (Bar Chart)
- 面积图 (Area Chart)
- 圆饼图 (Pie Chart)
- 雷达图 (Radar Chart)
- 散点图 (Scatter Chart)
- 组合图 (Combination Chart)
- K线图 (Candlestick Chart)
- 子图 (Subcharts)
其他功能
- 动态图表: 支持实时数据更新。
- 动画效果: 提供平滑的过渡动画。
- 自定义样式: 可以根据需求自定义颜色、样式和标签格式。
- 交互功能: 支持缩放、平移等用户交互。
二、折线图实例
注意:在本过程中我使用了 CommunityToolkit 程序包,通过它直接使用了MVVM模式架构(安装如下图的程序安装包即可)。

文件夹

1.ViewModel.cs
下面代码已加详细的注释。
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using LiveCharts;
using LiveCharts.Wpf;
using System.Timers;
using System.Windows.Media;
namespace LiveCharts实验.ViewModels
{
public partial class 折线图ViewModel : ObservableObject
{
#region 属性声明
public SeriesCollection LineSeriesCollection { get; set; } //SeriesCollection 是 LiveCharts 提供的类,用于存放多个数据系列
public Func<double, string> CustomFormatterX { get; set; } //格式化 X 轴的标签。可以自定义显示的格式
public Func<double, string> CustomFormatterY { get; set; } //格式化 Y 轴的标签。可以自定义显示的格式
private double axisXMax;
public double AxisXMax //X轴的最大显示范围
{
get { return axisXMax; }
set { axisXMax = value; this.OnPropertyChanged("AxisXMax"); }
}
private double axisXMin;
public double AxisXMin //X轴的最小值
{
get { return axisXMin; }
set { axisXMin = value; this.OnPropertyChanged("AxisXMin"); }
}
private double axisYMax;
public double AxisYMax //Y轴的最大显示范围
{
get { return axisYMax; }
set
{
axisYMax = value;
this.OnPropertyChanged("AxisYMax");
}
}
private double axisYMin;
public double AxisYMin //Y轴的最小值
{
get { return axisYMin; }
set
{
axisYMin = value;
this.OnPropertyChanged("AxisYMin");
}
}
private System.Timers.Timer timer = new System.Timers.Timer(); //声明一个定时器实例
private Random Randoms = new Random(); //随机数生成器
private int TabelShowCount = 10; //表示在图表中显示的最大点数
private List<ChartValues<double>> ValueLists { get; set; } //存储 Y 轴的数据点
private List<Axis> YAxes { get; set; } = new List<Axis>

最低0.47元/天 解锁文章
1325

被折叠的 条评论
为什么被折叠?



