2023年7月19日发(作者:)
C#之WPF统计图表开发⽅案C# 之 WPF 统计图表开发⽂档⼀、前⾔本项⽬的统计图使⽤LiveCharts 控件集成。LiveCharts, 是⼀款简单,灵活,交互式和强⼤的 DOTNET数据可视化图表控件,内置多种统计图表,可满⾜本项⽬的需求。⼆、环境配置1、开发环境操作系统名称:Microsoft Windows 10 专业⼯作站版IDE名称:Visual Studio 2017 15.9.92、加载 LiveCharts 库这⾥演⽰通过命令⾏(DOTNET的包管理器NuGet)向中央仓库拉取 LiceCharts 库。在控制台键⼊下⾯的命令PM> Install-Package 或者转到解决⽅案资源管理器,右键单击引⽤,然后管理NuGet包浏览,选择包并单击安装3、添加必须的头⽂件将命名空间添加到XAMLxmlns:lvc="clr-namespace:;assembly="在逻辑代码中添加头⽂件using LiveCharts;using ;三、基础图形LiveCharts旨在为⽤户提供便利,⼀切都⾃动更新和动画,库只会在认为有必要时更新,每次数据更改,添加/删除系列或添加/删除图表时都会更新将⾃⼰更新,除了你的业务,你真的不需要担⼼任何事情,让LiveCharts处理图表。1、柱状图(ColumnCharts)将命名空间添加到XAMLxmlns:lvc="clr-namespace:;assembly="在逻辑代码()中添加头⽂件using LiveCharts;using ;编写界⾯代码
的交互逻辑 /// public partial class MainWindow : Window { //
构造函数 public MainWindow() { InitializeComponent(); SeriesCollection = new SeriesCollection { new ColumnSeries { Title = "2015", // 2015的条形值 //
动态改变数据只需要更改此处的 Values
便可 Values = new ChartValues
动态改变数据只需要更改此处的 Values
便可 Values = new ChartValues
图形数据属性 public SeriesCollection SeriesCollection { get; set; } //
标签属性 public string[] Labels { get; set; } // Y轴坐标属性 public Func DataClick="Chart_OnDataClick" Hoverable="False" DataTooltip="{x:Null}"> < < < < < >PieSeries Title="Maria" Values="3" DataLabels="True"PieSeries Title="Charles" Values="4" DataLabels="True" PieSeries Title="Frida" Values="6" DataLabels="True" PieSeries Title="Frederic" Values="2" DataLabels="True" >PieChart> LabelPoint="{Binding PointLabel}"/> LabelPoint="{Binding PointLabel}"/> LabelPoint="{Binding PointLabel}"/> LabelPoint="{Binding PointLabel}"/>业务逻辑代码// 构造函数 public Pie() { InitializeComponent(); // ⾃定义显⽰标签 PointLabel = chartPoint => ("{0} ({1:P})", chartPoint.Y, ipation); DataContext = this; } // 使⽤泛型动态传⼊数据 public Func 饼图⿏标点击事件 */ private void Chart_OnDataClick(object sender, ChartPoint chartpoint) { var chart = (rt)iew; //clear selected slice. foreach (PieSeries series in ) t = 0; var selectedSeries = (PieSeries)View; t = 8; }运⾏效果:3、折线图(LineCharts)XAML⽂件< < < < < >Axis Title="Sales" LabelFormatter="{Binding YFormatter}">>>Axis Title="Month" Labels="{Binding Labels}">>CartesianChart>Axis>Axis> 业务逻辑代码// 构造函数public Line(){ InitializeComponent(); SeriesCollection = new SeriesCollection { // 匿名新建LineSeries对象 new LineSeries { // 折线的名称 Title = "Series 1", // 折线的拐点值 Values = new ChartValues 折线拐点的表⽰形状,默认为原点 PointGeometry = null }, new LineSeries { Title = "Series 3", Values = new ChartValues 折线拐点的表⽰形状,默认为原点,这⾥是正⽅形 PointGeometry = , // 折线拐点的形状尺⼨ PointGeometrySize = 15 } }; // X轴的坐标值 Labels = new[] { "Jan", "Feb", "Mar", "Apr", "May" }; // Y轴坐标值 YFormatter = value => ng("C"); //modifying the series collection will animate and update the chart // 动态添加折线"Series 4" (new LineSeries { Title = "Series 4", Values = new ChartValues 折线拐点的表⽰形状,默认为原点,这⾥是正⽅形 PointForeground = }); //modifying any series values will also animate and update the chart // 动态为折线"Series 4"添加⼀个值 SeriesCollection[3].(5d); // 数据绑定源 DataContext = this;}// 相关属性public SeriesCollection SeriesCollection { get; set; }public string[] Labels { get; set; }public Func 构造函数public Scatter(){ InitializeComponent(); // 使⽤随机数填充三种类型的散点 var r = new Random(); ValuesA = new ChartValues 赋随机值 for (var i = 0; i < 20; i++) { (new ObservablePoint( uble() * 10, uble() * 10)); (new ObservablePoint( uble() * 10, uble() * 10)); (new ObservablePoint( uble() * 10, uble() * 10)); } // 数据源绑定 DataContext = this;}// 相关属性public ChartValues ="2" Series="{Binding SeriesCollection}" LegendLocation="Right"> < < < < >Axis Title="Year" LabelFormatter="{Binding XFormatter}"/>>>Axis Title="Population" LabelFormatter="{Binding YFormatter}"/>>CartesianChart> 业务逻辑代码:public Stacked(){ InitializeComponent(); SeriesCollection = new SeriesCollection { new StackedAreaSeries { Title = "Africa", // Values 描点 Values = new ChartValues 描点 Values = new ChartValues 描点 Values = new ChartValues 描点 Values = new ChartValues 数据绑定 DataContext = this;}// 相关属性public SeriesCollection SeriesCollection { get; set; }public Func
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689718428a280701.html
评论列表(0条)