WPF图表Live Charts(四)动态折线图

2023-11-16

简介

前面介绍了Live Charts的基础和设置,接下将介绍如何绘制动态的折线图,实时更新数据的折线图。

效果预览

在这里插入图片描述

前台代码

  <Grid x:Name="mygrid">
        <lvc:CartesianChart Series="{Binding SeriesCollection}" LegendLocation="Left">
            <lvc:CartesianChart.AxisX>
                <lvc:Axis Title="Time" Labels="{Binding Labels}" FontSize="14"></lvc:Axis>
            </lvc:CartesianChart.AxisX>
            <lvc:CartesianChart.AxisY>
                <lvc:Axis MaxValue="10" MinValue="-10" MinRange="-10" MaxRange="10"/>
            </lvc:CartesianChart.AxisY>
        </lvc:CartesianChart>
    </Grid>

后台代码

  public partial class MainWindow : Window
    {
        public SeriesCollection SeriesCollection { get; set; }
        public  List <string> Labels { get; set; }
        private double _trend;
        private double[] temp = { 1, 3, 2, 4,-3,5,2,1 };
        public MainWindow()
        {		
            InitializeComponent();
			//实例化一条折线图
            LineSeries mylineseries = new LineSeries();
            //设置折线的标题
            mylineseries.Title = "Temp";
            //折线图直线形式
            mylineseries.LineSmoothness = 0;
            //折线图的无点样式
            mylineseries.PointGeometry = null;
            //添加横坐标
            Labels =new List<string>{ "1", "3", "2", "4", "-3", "5", "2", "1" };
            //添加折线图的数据
            mylineseries.Values = new ChartValues<double>(temp);
            SeriesCollection = new SeriesCollection { };
            SeriesCollection.Add(mylineseries);
            _trend = 8;
			linestart();
			DataContext = this;
        }
        //连续折线图的方法
        public void linestart()
        {
            Task.Run(() =>
            {
                var r = new Random();
                while (true)
                {
                    Thread.Sleep(1000);
                    _trend = r.Next(-10, 10);
                    //通过Dispatcher在工作线程中更新窗体的UI元素
                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        //更新横坐标时间
                        Labels.Add(DateTime.Now.ToString());
                        Labels.RemoveAt(0);
                        //更新纵坐标数据
                        SeriesCollection[0].Values.Add(_trend);
                        SeriesCollection[0].Values.RemoveAt(0);
                    });
                }
            });
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF图表Live Charts(四)动态折线图 的相关文章

  • 当从后台工作程序发生事件时,XlCall.Excel(XlCall.xlcCalculateNow) 抛出 XlCallException

    我有一个 ExcelFunction 来排队一些计算 ExcelFunction public static void QueueCalcs takes ranges var calcRequests builds list of calc
  • 从 Invoke 方法获取 RETURN

    我正在尝试从另一个线程上的列表框项目中读取值 我尝试创建一种新方法来运行调用命令 我可以设法将命令发送到列表框 例如通过调用方法添加 但我似乎无法得到响应 我似乎无法获取该项目的值 我尝试了几种方法 一旦我将它从空变为字符串 事情就开始变得
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • 如何查明 .exe 是否正在 C++ 中运行?

    给定进程名称 例如 程序 exe C 标准库没有这样的支持 您需要一个操作系统 API 来执行此操作 如果这是 Windows 那么您将使用 CreateToolhelp32Snapshot 然后使用 Process32First 和 Pr
  • 类中是否可以有虚拟类声明?

    我正在为个人项目中框架的各个组件设置一个接口 我突然想到了一些我认为可能对接口有用的东西 我的问题是这是否可能 class a public virtual class test 0 class b public a public clas
  • 虚拟并行端口模拟器

    在我的计算机网络课程中 我们应该通过使用本机寄存器 例如使用 outportb 等命令 来学习并行端口编程 我没有并行端口 因为我住在 2011 年 但想练习这些程序 我使用 dosbox 安装了旧的 Turboc 3 IDE 有没有一个程
  • C 类型命名约定,_t 或 ALLCAPS

    我一直想知道是否有任何命名约定 例如何时对类型使用全部大写以及何时追加 t 什么时候不使用任何东西 我知道当时 K R 发布了各种有关如何使用 C 的文档 但我找不到任何相关内容 在 C 标准库类型中 t看起来漂亮占主导地位 time t
  • 检测 TextBox 中的 Tab 键按下

    I am trying to detect the Tab key press in a TextBox I know that the Tab key does not trigger the KeyDown KeyUp or the K
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 如果在代码中添加元素,“FindName”将不起作用

    在 WPF 应用程序中 如果在 XAML 中声明 ContentControl
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • 测验;这个编译了吗?如果是的话它会返回什么(我知道答案)

    我最近发现这个错字 if name find string npos 显然开发者的意思是输入 if name find string npos 但令我惊讶的是发现错误甚至编译 Wall Werror 没有尝试过 pedantic 那么 咖啡
  • C++ 模板可以提供 N 个给定类的公共父类吗?

    我正在寻找一个 C 模板 它可以找到一组给定类的共同父级 例如 class Animal class Mammal public Animal class Fish public Animal class Cat public Mammal
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 在二进制数据文件的标头中放入什么

    我有一个模拟 可以读取我们创建的大型二进制数据文件 10 到 100 GB 出于速度原因 我们使用二进制 这些文件依赖于系统 是从我们运行的每个系统上的文本文件转换而来的 所以我不关心可移植性 当前的文件是 POD 结构的许多实例 使用 f
  • 解释这段代码的工作原理;子进程如何返回值以及在哪里返回值?

    我不明白子进程如何返回该值以及返回给谁 输出为 6 7 问题来源 http www cs utexas edu mwalfish classes s11 cs372h hw sol1 html http www cs utexas edu
  • 使用 IdentityDbContext 和 Code First 自动迁移表位置和架构的实体框架?

    我正在尝试使用 IdentityDbContext 类设置自动迁移更新 并将更改传播到整个数据库的实际 DbContext 在进入代码之前 在使用自动迁移实现 IdentityDbContext 时 我收到此错误 影响迁移历史系统表位置的自
  • 对多个对象使用事件处理程序

    我有 20 件物品List
  • IDisposable 的显式实现

    虽然有很多关于IDisposable在 SO 上找到 我还没有找到答案 我通常遵循这样的做法 当我的一个班级拥有一个IDisposable对象然后它也实现IDisposable并打电话Dispose在拥有的对象上 然而最近我遇到了一个类 它
  • 是否可以使用 Dapper 流式传输大型 SQL Server 数据库结果集?

    我需要从数据库返回大约 500K 行 请不要问为什么 然后 我需要将这些结果保存为 XML 更紧急 并将该文件通过 ftp 传输到某个神奇的地方 我还需要转换结果集中的每一行 现在 这就是我正在做的事情 TOP 100结果 使用 Dappe

随机推荐

  • C++基础知识 - 重载赋值运算符‘=‘

    为什么要对赋值运算符 进行重载 某些情况下 当我们编写一个类的时候 并不需要为该类重载 运算符 因为编译系统为每个类提供了默认的赋值运算符 使用这个默认的赋值运算符操作类对象时 该运算符会把这个类的所有数据成员都进行一次赋值操作 当程序没有
  • 秒杀多线程第四篇 一个经典的多线程同步问题

    上一篇 秒杀多线程第三篇原子操作 Interlocked系列函数 中介绍了原子操作在多进程中的作用 现在来个复杂点的 这个问题涉及到线程的同步和互斥 是一道非常有代表性的多线程同步问题 如果能将这个问题搞清楚 那么对多线程同步也就打下了良好
  • 针对浏览器做适配

    1 判断浏览器类型 var userAgent navigator userAgent 取得浏览器的userAgent字符串 var isOpera userAgent indexOf Opera gt 1 判断是否Opera浏览器 if
  • 项目上传服务器后图片无法加载失败,JSP:Ueditor--上传单独服务器,解决图片上传成功,但提示上传错误...

    domUtils on iframe load callback form action utils formatUrl imageActionUrl imageActionUrl indexOf 1 params form submit
  • Unity 中的 SetActive() 、 OnEnable()、OnDisable()

    一 Unity 3D中的 GameObject SetActive 与 MonoBehaviour OnEnable MonoBehaviour OnDisable 其实这三之前的关系很简单 SetActive true 很触发MonoBe
  • go中斐波切纳数列

    package main import fmt runtime time func main runtime GOMAXPROCS 1 fmt Println sum 5 fmt Println amount 5 fmt Println a
  • 信创概念又火了,但这次有点不一样

    从 小 信创到 大 信创拐点正在来临 作者 桑明强 出品 产业家 国外软件公司的 好日子 快要到头了 源头要从信创开始谈起 去年9月的时候 国家下发了79号文 全面指导国资信创产业发展和进度 总结起来 核心要点有3项 1 全面替换 央企信创
  • 【译】12 条你可能还不知道的 Rust 提示和技巧

    12 Rust Tips and Tricks you might not know yet 译文 12 条你可能还不知道的 Rust 提示和技巧 原文链接 https federicoterzi com blog 12 rust tips
  • idea 中使用dataBase插件

    欢迎关注微信公众号 程序员小圈圈 转载请标明出处 原文首发于 www zhangruibin com 本文出自于 RebornChang的博客 idea对诸多数据库插件提供支持 举例MySQL数据库 使用idea中数据库插件首先把数据库da
  • leetcode 21. 合并两个有序链表 (python)

    将两个有序链表合并为一个新的有序链表并返回 新链表是通过拼接给定的两个链表的所有节点组成的 例 输入 1 gt 2 gt 4 1 gt 3 gt 4 输出 1 gt 1 gt 2 gt 3 gt 4 gt 4 本题同样可以很单线条解决 代码
  • 使用 windows 批处理指令(BAT文件)进行压缩文件(zip)解压操作

    以下指令包括文件删除 复制 zip文件解压操作 使用7z指令指令进行解压操作前 需要确保 windows 的 path 系统环境变量中存在7z的安装路径 7z的下载地址 https www 7 zip org download html 替
  • 【资源下载】Linux中下载并安装gdb调试器(附下载链接)

    资源下载 Linux中下载并安装gdb调试器 附下载链接 gdb是Linux环境下的代码调试工具 为了能在linux环境下更有好的编程体验 接下来我来教大家怎么安装 文章目录 资源下载 Linux中下载并安装gdb调试器 附下载链接 1 先
  • 无人车沿着指定线路自动驾驶与远程控制的实践应用

    有了前面颜色识别跟踪的基础之后 我们就可以设定颜色路径 让无人车沿着指定线路做自动驾驶了 视频 PID控制无人车自动驾驶 有了前几章的知识铺垫 就比较简单了 也是属于颜色识别的一种应用 主要是掌握自动驾驶中的一些基础知识 这样就可以进一步去
  • 第二讲 MySQL体系结构与存储引擎

    1 MySQL体系结构 1 1 数据库与数据库实例 数据库 物理操作系统中的文件和其他文件类型的集合 除了硬盘存储的文件 也可以是存放在内存中的文件 数据库实例 有数据库后台进程 线程以及一个共享内存区域组成 共享内存可以被后台进程 线程所
  • 【数据结构期末例题】

    前言 本文是博主自己在准备学校数据结构考试时的总结 各个知识点都贴有对应的详细讲解文章以供大家参考 当然文中还有许许多多的截图 这些是博主对主要内容的摘取 对于那些基础较好的同学可以直接看截图 减少跳转对应文章浏览全文的时间 感谢本文引用文
  • 弹性盒子(display: flex)布局超全讲解

    文章目录 什么是弹性布局 弹性布局的特点 容器的属性 justify content align items flex direction flex wrap flex flow align content order属性 flex gro
  • QT笔记-Label控件显示图片

    1 Label控件动态显示图片 动态显示图片1 int DeviceEdit OnLensPic bool checked AfCd cd QImage img img load UI lens bmp QImage imgScaled i
  • EduCoder_web实训作业--页面结点元素

    第一关 B C D A B 第二关 section section
  • LeetCode从零开始——第一题

    1 两数之和 题目描述 解题思路 代码执行 题目描述 给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的那 两个 整数 并返回他们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素不能
  • WPF图表Live Charts(四)动态折线图

    简介 前面介绍了Live Charts的基础和设置 接下将介绍如何绘制动态的折线图 实时更新数据的折线图 效果预览 前台代码