3.1 WPF画折线图、直方图、饼状图

本文看了博客WPF编程,Live Charts使用说明(2)——使用_func<chartpoint, string> labelpoint-CSDN博客,这里作为笔记用。

1.前端代码

前端XAML文件代码如下:

<Window x:Class="livechart1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:livechart1"xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><Grid.RowDefinitions><RowDefinition Height="40"/><RowDefinition/></Grid.RowDefinitions><StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="10 0 0 0"><Button Width="80" Height="30" Margin="5 0 0 0" Content="折线图" Click="Button_Click"/><Button Width="80" Height="30" Margin="5 0 0 0" Content="直方图" Click="Button_Click_1"/><Button Width="80" Height="30" Margin="5 0 0 0" Content="饼状图" Click="Button_Click_2"/></StackPanel><Grid Grid.Row="1"><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><lvc:CartesianChart Name="s1" LegendLocation="Top"><lvc:CartesianChart.AxisY><lvc:Axis Name="s1y" Title="分数" MinValue="0"></lvc:Axis></lvc:CartesianChart.AxisY><lvc:CartesianChart.AxisX><lvc:Axis Name="s1x" Title="区域" ></lvc:Axis></lvc:CartesianChart.AxisX></lvc:CartesianChart><lvc:CartesianChart Name="s2" Grid.Column="1" LegendLocation="Top"><lvc:CartesianChart.AxisX><lvc:Axis Name="s2y" Title="区域" ></lvc:Axis></lvc:CartesianChart.AxisX><lvc:CartesianChart.AxisY><lvc:Axis Name="s2x" Title="分数" MinValue="0"></lvc:Axis></lvc:CartesianChart.AxisY></lvc:CartesianChart><lvc:PieChart Name="s3" LegendLocation="Top" Grid.Column="2"/></Grid></Grid>
</Window>

以上代码中,<Grid>上面的代码是自己生成的,里面有一行是我们加入的,这一行是:

xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"

<Grid> ...</Grid>之间的所有代码复制到里面就行。

2.后端代码

在cs文件中的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using LiveCharts;
using LiveCharts.Wpf;
using static System.Net.WebRequestMethods;namespace livechart1
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}//1.折线图private void Button_Click(object sender, RoutedEventArgs e){SeriesCollection series = new SeriesCollection{new LineSeries{Title = "深圳",Values = new ChartValues<double> {4,6,5,2,7}},new LineSeries{Title = "广州",Values = new ChartValues<double> { 6, 7, 3, 4 ,6 }}};//x轴string[] Labels = new[] { "2011", "2012", "2013", "2014", "2015" };s1.Series = series;s1x.Labels = Labels;s1y.Separator.Step = 1;s1y.LabelFormatter = new Func<double, string>((value) =>{return value.ToString();});}//2.柱状图private void Button_Click_1(object sender, RoutedEventArgs e){SeriesCollection SeriesCollection = new SeriesCollection{new ColumnSeries{Title = "深圳",Values = new ChartValues<double> { 10, 50, 39, 50 }},new ColumnSeries{Title = "广州",Values = new ChartValues<double> { 11, 56, 42 }}};string[] Labels = new[] { "2011", "2012", "2013", "2014", "2015" };s2.Series = SeriesCollection;s2x.Labels = Labels;s2y.Separator.Step = 1;}// 3.饼图private void Button_Click_2(object sender, RoutedEventArgs e){SeriesCollection SeriesCollection = new SeriesCollection();SeriesCollection.Add(new PieSeries(){Title = "高一(1)班",Values = new ChartValues<int>() { 30 },DataLabels = true,LabelPoint = new Func<ChartPoint, string>((chartPoint) =>{return string.Format("{0}{1} ({2:P})", chartPoint.SeriesView.Title, chartPoint.Y, chartPoint.Participation);})});SeriesCollection.Add(new PieSeries(){Title = "高一(2)班",Values = new ChartValues<int>() { 50 },DataLabels = true,LabelPoint = new Func<ChartPoint, string>((chartPoint) =>{return string.Format("{0}{1} ({2:P})", chartPoint.SeriesView.Title, chartPoint.Y, chartPoint.Participation);})});SeriesCollection.Add(new PieSeries(){Title = "高一(3)班",Values = new ChartValues<int>() { 20 },DataLabels = true,LabelPoint = new Func<ChartPoint, string>((chartPoint) =>{return string.Format("{0}{1} ({2:P})", chartPoint.SeriesView.Title, chartPoint.Y, chartPoint.Participation);})});s3.Series = SeriesCollection;}}
}

在以上代码中,头文件有LiveCharts,这个我们需要进入 工具--->NuNet 包管理器--->管理解决方案,进入后搜索LiveCharts,然后点击安装即可。

3.最终效果

最后运行代码,运行结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/914963.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/914963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过ATS/HTTPS数据防篡改来加密视频?

文章目录前言一、什么是ATS/HTTPS数据防篡改&#xff1f;二、ATS/HTTPS数据防篡改的实现原理三、如何零代码实现ATS/HTTPS数据防篡改来加密视频总结前言 未经保护的视频流极易在传输途中遭遇窃听、拦截或恶意篡改&#xff0c;不仅损害内容价值&#xff0c;更可能引发严重的安全…

Python并发模型:多线程与多进程的优劣对比与实战应用

文章目录多线程基础概念多进程基础概念多线程的优劣势多进程的优劣势实战应用&#xff1a;网络爬虫实战应用&#xff1a;图像处理Python作为一门功能强大的编程语言&#xff0c;提供了多种并发模型&#xff0c;使得我们能够在同一时间执行多个任务&#xff0c;从而提高程序的执…

Spring Boot 整合 Nacos 实战教程:服务注册发现与配置中心详解

Spring Boot 整合 Nacos 教程&#xff08;3000字&#xff09; 一、Nacos 简介 Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台&#xff0c;致力于帮助开发者更轻松地构建云原生应用。它支持多种注册中心协议&#xff08;如 Dubbo、Spring Cloud、Kubernete…

VMware 虚拟机装 Linux Centos 7.9 保姆级教程(附资源包)

安装 VMware 17.5.1 centos 7.9 ​ 1、下载资源包&#xff08;虚拟机镜像&#xff09; VMware-17.5.1 安装包秘钥.zipLinux Centos 7.9 镜像 2、centos 7.9 下载地址 1、Centos 官网 2、阿里巴巴镜像站 3、查看网络命令 ifconfig 或 ip addr 4、登陆服务器 ssh stark192.168.3…

STM32超声波模块

一&#xff1a;超声波模块1&#xff1a;工作原理采用IO触发测距&#xff0c;给至少10us的高电平信号。 模块自动发送8个40KHz的方波&#xff0c;自动检测是否有信号返回。 有信号返回&#xff0c;通过IO输出一高电平&#xff0c;高电平持续时间就是超声波从发射到返回的时间声波…

RK3568项目(十一)--linux驱动开发之mipi屏幕调试

目录 一、引言 二、MIPI DSI 屏幕 ------>2.1、MIPI联盟 ------------>2.1.1、多媒体部分 ------------>2.1.2、硬件协议 ------------>2.1.3、D-PHY功能模式及速率 ------------>2.1.4、分辨率计算 ------>2.2、MIPI-DSI硬件连接 ------>2.3、传…

C语言小游戏——飞机大战

目录 引言 开发环境与工具准备 1. 开发环境配置 2. 资源文件准备 游戏设计与架构 1. 游戏核心数据结构 2. 游戏全局变量 游戏核心功能实现 1. 游戏初始化 2. 游戏主循环 3. 游戏渲染 4. 游戏状态更新 关键游戏机制实现 1. 敌机生成系统 2. 碰撞检测系统 3. 敌机…

SQLite的可视化界面软件的安装

1、如下图所示&#xff0c;DB Browser软件&#xff0c;在压缩包中。2、首先解压到一个文件夹中。例如&#xff08;D:\\DB Browser&#xff09;文件夹。解压后的内容如下图。3、将解压后的DB Browser文件夹&#xff0c;剪切到D:\Program Files\目录中。如下两图。win10操作系统下…

基于 STM32H743VIT6 的边缘 AI 实践:猫咪叫声分类 CNN 网络部署实战(已验证)中一些bug总结

前言前面发了一篇文章基于 STM32H743VIT6 的边缘 AI 实践&#xff1a;猫咪叫声分类 CNN 网络部署实战&#xff08;已验证&#xff09;。这里面有一些我遇到过的bug&#xff0c;当时基本都花了很长的时间才解决。这里将这些bug总结一下方便后续查阅。1.使用cubemx插件解析AI模型…

【机器学习】突破分类瓶颈:用逻辑回归与Softmax回归解锁多分类世界

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

Android gradle plugin agp8.6.1发布时间

Android gradle plugin agp8.6.1发布时间 Android Gradle Plugin (AGP) 的版本 8.6.1 是在2023年发布的。具体来说&#xff0c;它是在2023年4月发布的。这个版本的更新包括了多个重要的改进和修复&#xff0c;旨在提升开发者在Android开发过程中的体验和效率。 主要更新包括&am…

闭包的两种设计模式

闭包设计模式 概述 闭包是 JavaScript 中的一个重要概念&#xff0c;它允许内层函数访问外层函数的变量。在实际开发中&#xff0c;闭包经常被用于实现特定的设计模式&#xff0c;主要包括辅助函数模式和工厂模式。 1. 辅助函数模式&#xff08;Helper Function Pattern&#x…

力扣119:杨辉三角Ⅱ

力扣119:杨辉三角Ⅱ题目思路代码题目 给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角」的第 rowIndex 行。 思路 杨辉三角的规律&#xff1a; 第n行有n1个数&#xff0c;n从0开始每行的第一个数和最后一个数都是1。除了第一行的数其他的数都是由它左上角和右上角的…

@Linux自建证书 Nginx+HTTPS

文章目录Linux自建证书并配置Nginx HTTPS1. 准备工作2. 安装必要的工具3. 自建证书脚本3.1 创建CA根证书&#xff08;可选&#xff0c;用于自签名证书链&#xff09;3.2 创建服务器证书脚本4. 证书文件说明5. 配置Nginx使用HTTPS5.1 创建证书存放目录5.2 配置Nginx站点5.3 启用…

解决 RAGFlow报错 `peewee.OperationalError: (1045)`:MySQL 容器密码错误排查手记

文章目录 🕵️‍♂️ 深度排查过程 🔧 完美解决方案:同步真实密码 ✅ 验证结果 📌 经验总结与最佳实践 问题现象: 部署 ragflow 时遭遇以下错误,且访问前端页面无响应: peewee.OperationalError: (1045, "Access denied for user root@192.168.48.6")关键线…

lwIP WebSocket 客户端 TCP PCB 泄漏问题分析与解决

在嵌入式开发中&#xff0c;使用 lwIP 实现 WebSocket 客户端时&#xff0c;偶尔会遇到反复连接导致 TCP PCB&#xff08;Protocol Control Block&#xff09;泄漏&#xff0c;最终连接数达到上限&#xff08;如 4&#xff09;后无法再建立新连接的问题。本文将结合实际案例&am…

k8s之Attach 和 Mount

Attach 和 Mount 一、核心概念对比操作Attach&#xff08;挂载设备&#xff09;Mount&#xff08;挂载文件系统&#xff09;定义将存储卷&#xff08;如 EBS、NFS 等&#xff09;连接到宿主机将已 Attach 的存储设备映射为宿主机上的文件系统路径执行者云提供商驱动&#xff08…

API Gateway HTTP API 控制客户端访问 IP 源

前言 在 API Gateway REST API 中我们可以配置 Resource policy 来实现对特定客户端 IP 地址的限制. 然而 HTTP API 并不提供这个功能, 不过我们可以用 Lambda 搓一个 Authorizer 实现等效的功能. 创建 Lambda authorizer import json import os import ipaddressdef lambda…

Linux搭建LAMP环境(CentOS 7 与 Ubuntu 双系统教程)

Linux搭建LAMP环境 一、LAMP 环境核心概念 定义&#xff1a;由 Linux、Apache、MySQL、PHP 四大组件组成的开源 Web 应用平台本质&#xff1a;四个独立开源软件的组合体&#xff0c;因长期协同使用形成高度兼容性&#xff0c;成为动态网站和服务器的主流解决方案 二、LAMP 四大…

c# 开机自动启动程序

以下是两种实现C#软件开机自启动的常用方法&#xff0c;根据需求选择适合的方案&#xff1a; 方法1&#xff1a;通过注册表实现&#xff08;需管理员权限&#xff09; using Microsoft.Win32; using System.Diagnostics;public static class AutoStartManager {/// <summa…