当前位置: 首页 > article >正文

WPF中使用LiveCharts绘制散点图

一、背景

       这里的代码使用MVVM模式进行编写

二、Model

public class DataPoint
    {
        public double X { get; set; }
        public double Y { get; set; }
    }

三、ViewModel

public class ScatterChartViewModel
    {


        public SeriesCollection Series { get; set; }


        public ScatterChartViewModel()
        {
            //初始化数据
            var dataPoints = new List<DataPoint>
            {
                new DataPoint { X= 1, Y= 10 },
                new DataPoint { X= 2, Y= 20 },
                new DataPoint { X= 3, Y= 15 },
            };


            Series = new SeriesCollection()
            {
                new ScatterSeries
                {
                    Title = "Data",
                    Values = new ChartValues<ObservablePoint>(posPoints.Select(dp => new ObservablePoint(dp.X, dp.Y)))
                }
            };        
        }  

    }

四、View

<Window x:Class="DisplayData.Views.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:DisplayData.Views"
        mc:Ignorable="d"
        xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
        Title="Data" Height="900" Width="1200" WindowStartupLocation="CenterScreen">
    <Grid>          
            <lvc:CartesianChart Series="{Binding Series}" BorderBrush="#7ADA95" BorderThickness="1">
            </lvc:CartesianChart>       
    </Grid>
</Window>
public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = new ScatterChartViewModel();
        }
    }


http://www.kler.cn/a/272063.html

相关文章:

  • springboot基于微信小程序的商城系统
  • 网络安全 | 入侵检测系统(IDS)与入侵防御系统(IPS):如何识别并阻止威胁
  • 在 CentOS 7.9 上编译 Nginx 并启用 SSL 模块时遇到缺少 OpenSSL 源码的编译问题及解决方案
  • 解锁C# EF/EF Core:从入门到进阶的技术飞跃
  • Spring Boot整合Thymeleaf、JDBC Template与MyBatis配置详解
  • SQL-leetcode—1174. 即时食物配送 II
  • 如何降低云计算成本?
  • 数字后端 EDA 软件分享
  • Find My游戏机|苹果Find My技术与游戏机结合,智能防丢,全球定位
  • Linux 块设备驱动
  • 算法第二十九天-森林中的兔子
  • LGB2028 反向输出一个三位数
  • 动态规划题目集一(代码 注解)
  • 继承 ResponseEntityExceptionHandler
  • 2024云服务器安装MySQL,连接Navicat保姆级教程
  • Realtek PCIE Ethenter - PG Tool 使用操作說明
  • SpringBoot整合ElasticSearch应用
  • python中pdf转图片的操作方法二
  • “城市绿肺诊断:集成GIS、RS、VORS模型、CCDM模型、geodetecto、GWR模型技术深入解析生态系统与城镇化协调发展“
  • 接口幂等性问题和常见解决方案
  • LLM之RAG实战(二十九)| 探索RAG PDF解析
  • Flutter开发进阶之使用工具效率开发
  • 京东云主机+京美建站SaaS版
  • Python程序设计基础——代码习题
  • Python常见报错疑难杂症的解决思路解决方案
  • 【学习张天禹老师的vue课程发现的一个问题-vue销毁时候到底会不会解绑原生的dom事件?】