WPF優秀圖表元件推薦之LiveCharts
概述
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); } }); } #endregionView Code
以上程式碼下載地址:NiceComponents · Bruce/Learn WPF - 碼雲 - 開源中國 (gitee.com)
參考文件:
WPF繪製圖表-LiveCharts - 橘子香氣 - 部落格園 (cnblogs.com)
WPF LiveChart 圖表詳解 - 痕跡g - 部落格園 (cnblogs.com)
更多資源請參考官方原始碼。
概述
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); } }); } #endregionView Code
以上程式碼下載地址:NiceComponents · Bruce/Learn WPF - 碼雲 - 開源中國 (gitee.com)
參考文件:
WPF繪製圖表-LiveCharts - 橘子香氣 - 部落格園 (cnblogs.com)
WPF LiveChart 圖表詳解 - 痕跡g - 部落格園 (cnblogs.com)
更多資源請參考官方原始碼。
出處:https://www.cnblogs.com/seabluescn/p/15980609.html