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(四)动态折线图 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • 按成员序列化

    我已经实现了template
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • 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的基础和设置 接下将介绍如何绘制动态的折线图 实时更新数据的折线图 效果预览 前台代码