概述

LiveCharts是一个比较漂亮的WPF图表控件,在数据变化时还会有动画切换的效果,并且样式也可以控制。

官方网站:Live Charts (lvcharts.net)

开源代码:GitHub - Live-Charts/Live-Charts: Simple, flexible, interactive & powerful charts, maps and gauges for .Net

本文代码基于Stylet开发,如果您还不了解Stylet,请参阅:

WPF优秀组件推荐之Stylet(一) - seabluescn - 博客园 (cnblogs.com)

WPF优秀组件推荐之Stylet(二) - seabluescn - 博客园 (cnblogs.com)

环境安装

通过Nuget引用下面两个组件;

基本使用

本文介绍一个常用的折线图的控件,其它控件请查看官方代码。

Xaml:

                <lvc:CartesianChart >
<lvc:CartesianChart.Series>
<lvc:LineSeries Title="Voltage" Values="{Binding VoltageLineSeries}" />
<lvc:LineSeries Title="Current" Values="{Binding CurrentLineSeries}" />
</lvc:CartesianChart.Series> <!--定义Y轴-->
<lvc:CartesianChart.AxisY>
<lvc:Axis Title="Voltage/Current"></lvc:Axis>
</lvc:CartesianChart.AxisY> <!--定义X轴-->
<lvc:CartesianChart.AxisX>
<lvc:Axis Title="Samples" Labels="{Binding XTimeLabels}"/>
</lvc:CartesianChart.AxisX>
</lvc:CartesianChart>

Code:

        #region LiveCharts

        public string[] XTimeLabels { get; set; } = new string[] { "0" };
public ChartValues<double> VoltageLineSeries { get; set; }
public ChartValues<double> CurrentLineSeries { get; set; } public void ReflashDatas()
{
Random random = new Random(); VoltageLineSeries = new ChartValues<double>();
CurrentLineSeries = new ChartValues<double>(); Task.Run(() =>
{
while (true)
{
VoltageLineSeries.Add(random.Next(200, 300));
CurrentLineSeries.Add(random.Next(1, 20)); int Count = VoltageLineSeries.Count;
if (Count > 0)
{
XTimeLabels = new string[Count];
for (int i = 0; i < Count; i++)
{
XTimeLabels[i] = (i + 1).ToString();
}
} Thread.Sleep(2000);
}
});
} #endregion

以上代码下载地址:NiceComponents · Bruce/Learn WPF - 码云 - 开源中国 (gitee.com)

参考文档:

WPF绘制图表-LiveCharts - 橘子香气 - 博客园 (cnblogs.com)

WPF LiveChart 图表详解 - 痕迹g - 博客园 (cnblogs.com)

更多资源请参考官方源码。

WPF优秀组件推荐之LiveCharts的更多相关文章

  1. WPF优秀组件推荐之MahApps

    概述 MahApps是一套基于WPF的界面组件,通过该组件,可以使用较小的开发成本实现一个相对很好的界面效果. 官方网站:MahApps.Metro - Home 开源代码:MahApps · Git ...

  2. WPF优秀组件推荐之FreeSpire

    概述 Spire是一套可以轻松处理Word.Excel和PDF的商业组件,需要收费,但是他有一套对应的免费组件FreeSpire可以使用,免费组件在功能上有一些限制(比如:excel的sheet数量不 ...

  3. WPF优秀组件推荐之Stylet(一)

    一.简介 Stylet是基于WPF的一款MVVM组件,虽然WPF本身是自带MVVM功能的,但实现起来不是很方便 ,通过Stylet,用户可以用很少的代码就能享受MVVM带来的舒适体验. 目前Style ...

  4. WPF优秀组件推荐之Stylet(二)

    上一篇文章介绍了Stylet的一些基本功能,本篇将介绍一些深入一点的功能. 依赖注入 在Bootstrapper 类中注入需要的对象: public class Bootstrapper : Boot ...

  5. JS组件系列——Bootstrap组件福利篇:几款好用的组件推荐(二)

    前言:上篇 JS组件系列——Bootstrap组件福利篇:几款好用的组件推荐 分享了几个项目中比较常用的组件,引起了许多园友的关注.这篇还是继续,因为博主觉得还有几个非常简单.实用的组件,实在不愿自己 ...

  6. 优秀工具推荐:超实用的 CSS 库,样板和框架

    当启动一个新的项目,使用 CSS 框架或样板,可以帮助您节省大量的时间.在这篇文章中,我编译整理了我最喜欢的 CSS 样板,框架和库,帮助你在建立网站或应用程序时更加高效. 您可能感兴趣的相关文章 精 ...

  7. 【转】JS组件系列——Bootstrap组件福利篇:几款好用的组件推荐(二)

    前言:上篇 JS组件系列——Bootstrap组件福利篇:几款好用的组件推荐 分享了几个项目中比较常用的组件,引起了许多园友的关注.这篇还是继续,因为博主觉得还有几个非常简单.实用的组件,实在不愿自己 ...

  8. HP-Socket国产优秀socket通信组件推荐

    来源:http://blog.csdn.net/clb929/article/details/51085983 * HP-Socket 官方网站:http://www.jessma.org * HP- ...

  9. vue组件推荐

    Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正 ...

随机推荐

  1. C++ STL 容器概述

    在STL编程中,容器是经常用到的一种数据结构,在C++标准库中,容器分为: 序列式容器 关联式容器 二者本质区别在于,序列式容器是通过元素在容器中的位置进行顺序存储和元素访问.关联容器则是通过键[ke ...

  2. c++14新特性

    1.函数返回值类型推导 c++14对函数返回类型推导规则做了优化: auto func(int i) { //C++11编译非法,c++14支持auto返回值类型推导 return i; } int ...

  3. 海康NVR设备上传人脸图片到人脸库

    海康开放平台--海康文档链接--海康开发包和文档下载链接 硬件:海康超脑NVR(全称Network Video Recorder,即网络视频录像机).人脸摄像机. 环境:JDK_1.8 Windows ...

  4. UCB DS100 讲义《数据科学的原理与技巧》校对活动正式启动 | ApacheCN

    贡献指南:https://github.com/apachecn/ds100-textbook-zh/blob/master/CONTRIBUTING.md 整体进度:https://github.c ...

  5. 【C++】【源码解读】std::is_same函数源码解读

    std::is_same使用很简单 重点在于对源码的解读 参考下面一句静态断言: static_assert(!std::is_same<bool, T>::value, "ve ...

  6. AT2651 [ARC077D] SS

    定义 \(nxt_i\) 表示在字符串 \(S\) 中以 \(i\) 结尾的最长 \(border\). 引理一:若 \(n - nxt_n \mid n\) 则 \(S_{1 \sim n - nx ...

  7. Firewalld工作区

    firewalld的字符界面管理工具是 firewall-cmd  firewalld默认配置文件有两个:/usr/lib/firewalld/ (系统配置,尽量不要修改)和 /etc/firewal ...

  8. zabbix 监控系统概述及部署

    zabbix 监控系统概述及部署 1.Zabbix是什么: zabbix是一个个基于web界而的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系 ...

  9. 读写分离&分库分表学习笔记

    读写分离 何为读写分离? 见名思意,根据读写分离的名字,我们就可以知道:读写分离主要是为了将对数据库的读写操作分散到不同的数据库节点上. 这样的话,就能够小幅提升写性能,大幅提升读性能. 我简单画了一 ...

  10. 《PHP程序员面试笔试宝典》——如何进行自我介绍?

    本文摘自<PHP程序员面试笔试宝典> PHP面试技巧分享,PHP面试题,PHP宝典尽在"琉忆编程库". 自我介绍是面试中至关重要的一个步骤,很多面试官对求职者提出的第一 ...