概述

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)

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

最新文章

  1. Linux多线程学习总结
  2. centos下JDK的卸载与安装
  3. Pair Project:电梯控制程序
  4. apache多站点配置
  5. Java 在某一个时间点定时执行任务(转载)
  6. How do I use SOCKS proxy in delphi?
  7. MySQL并发复制系列二:多线程复制
  8. Tomcat 官网知识总结篇
  9. 2016 C++及系统软件技术大会亮点
  10. ubuntu 14.04 cagl
  11. 201521123069 《Java程序设计》 第3周学习总结
  12. Apollo的Oracle适配改动
  13. HNOI2006公路修建问题
  14. KindEditor 开源得富文本编辑器
  15. zabbix图形化界面乱码(二)
  16. MySQL索引设计不可忽视的知识点
  17. 利用MYSQL的加密解密办法应对三级安全等级保护
  18. logtash 接收多配置文件
  19. java框架篇---Struts入门
  20. nuget类库xml说明以及类库说明文件添加到包中

热门文章

  1. SpringMVC之RedirectAttributes属性
  2. 解决Wordpress提示FTP登录问题
  3. 【转】性能测试报告模板 V1.0
  4. 如何实现固定宽高的DOM元素的水平垂直居中
  5. @property基本概念
  6. iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G) by徐文棋
  7. 第11、12章等待方法和alter框处理
  8. Kubeadm部署-Kubernetes-1.18.6集群
  9. ZCC2410同步升压变换芯片
  10. HTML5/CSS3/JS笔记