首页 > 其他分享 >Visifire显示实时曲线图

Visifire显示实时曲线图

时间:2024-02-21 17:11:10浏览次数:26  
标签:Visifire pt 曲线图 random System timer 实时 new

前台代码:

<Window
    x:Class="WPFVisifireChartsApp.RealtimeLineGraph"
    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:local="clr-namespace:WPFVisifireChartsApp"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:vc="clr-namespace:Visifire.Charts;assembly=WPFVisifire.Charts"
    Title="RealtimeLineGraph"
    Width="800"
    Height="450"
    mc:Ignorable="d">
    <Grid>
        <vc:Chart
            AnimatedUpdate="true"
            BorderBrush="Gray"
            BorderThickness="0.5"
            CornerRadius="7,7,0,0"
            ShadowEnabled="True"
            Theme="Theme1">

            <vc:Chart.Titles>
                <vc:Title FontSize="14" Text="实时曲线图" />
            </vc:Chart.Titles>

            <vc:Chart.Series>
                <vc:DataSeries
                    x:Name="ds"
                    LabelEnabled="True"
                    RenderAs="QuickLine" />
            </vc:Chart.Series>
        </vc:Chart>
    </Grid>
</Window>

后台代码:

using System;
using System.Windows;
using System.Windows.Threading;

namespace WPFVisifireChartsApp
{
    public partial class RealtimeLineGraph : Window
    {
        public RealtimeLineGraph()
        {
            InitializeComponent();

            ds.AutoFitToPlotArea = true;

            Random random = new Random();
            var index = 0;

            for (int i = 0; i < 1000; i++)
            {
                var pt = new Visifire.Charts.DataPoint();
                pt.XValue = index++;
                pt.YValue = random.NextDouble();
                ds.DataPoints.Add(pt);
            }

            DispatcherTimer timer = new DispatcherTimer();
            timer.Interval = TimeSpan.FromMilliseconds(100);
            timer.Tick += (s, e) =>
            {
                var pt = new Visifire.Charts.DataPoint();
                pt.XValue = index++;
                pt.YValue = random.NextDouble();
                ds.DataPoints.Add(pt);
            };
            timer.Start();

            this.Closing += (s, e) => timer.Stop();
        }
    }
}

运行一段时间以后,X轴会出现滚动条。滚动条本身可以拖动。
但是一屏内展示的曲线点实时有点少,不知道怎么样改变同一时间展示的点数。
因为同时展示的点比较少,倒是不卡,但不能说明这个性能就好。

标签:Visifire,pt,曲线图,random,System,timer,实时,new
From: https://www.cnblogs.com/wzwyc/p/18025704

相关文章

  • 工业实时关系型数据库 Historian
    WonderwareHistorian 软件,早先发布的名称为InSQL(IndustrialSQLServer)。是应用于制造业工业企业的一种高性能实时数据库,能提供无与伦比的可扩展性,支持多达500,000条标签,与以往产品相比,具有更大的检索吞吐量。Historian可以配置为单一的数据收集和集合系统,也可作为更大......
  • 记录--你还在使用websocket实现实时消息推送吗?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言在日常的开发中,我们经常能碰见服务端需要主动推送给客户端数据的业务场景,比如数据大屏的实时数据,比如消息中心的未读消息,比如聊天功能等等。本文主要介绍SSE的使用场景和如何使用SSE。服务端向客户端推送......
  • 数据实时备份
    数据实时备份这里采用lsyncd+rsync实现服务器之间数据实时同步服务端配置备份服务器执行这个脚本,确保服务启动#配置rsyncd服务端的全部流程,也可以写成脚本,一键安装#/bin/bashyuminstallrsync-ycat>/etc/rsyncd.conf<<'EOF'uid=wwwgid=wwwport=873fake......
  • 基于Doris构建亿级数据实时数据分析系统
    转载至我的博客https://www.infrastack.cn,公众号:架构成长指南背景随着公司业务快速发展,对业务数据进行增长分析的需求越来越迫切,与此同时我们的业务数据量也在快速激增、每天的数据新增量大概在30w左右,一年就会产生1个亿的数据,显然基于传统MySQL数据库已经无法支撑满足以......
  • Keil5在Debug下如何实时查看变量的值
    在Debug模式下查看某个变量的值很简单,只需把需要查看的变量添加到watch,有一点要注意的是该变量必须是全局变量才能实时显示,具体操作如下图。1、把鼠标光标移到要查看的变量处;2、点击鼠标右键,在弹出的窗口中选择Add‘ADC _Value’to;3、选择显示的窗口,有两个窗口选择。变量......
  • Asp-Net-Core学习笔记:3.使用SignalR实时通信框架开发聊天室
    SignalR牛刀小试在MVP杨老师的博客里看到这么个东西,我还以为是NetCore3才推出的新玩意,原来是已经有很多年的历史了,那看来还是比较成熟的一个技术了。简介SignalR是一个.NETCore/.NETFramework的开源实时框架,SignalR的可使用WebSocket,ServerSentEvents和LongPolling......
  • Flink CDC实时同步PG数据库到Kafka
    一、安装规划操作系统服务器IP主机名硬件配置CentOS7.6192.168.80.131hadoop01内存:2GB,CPU:2核,硬盘:100GBCentOS7.6192.168.80.132hadoop02内存:2GB,CPU:2核,硬盘:100GBCentOS7.6192.168.80.133hadoop03内存:2GB,CPU:2核,硬盘:100GB......
  • 【Flink】使用CoProcessFunction完成实时对账、基于时间的双流join
    【Flink】使用CoProcessFunction完成实时对账、基于时间的双流join文章目录零处理函数回顾一CoProcessFunction的使用1CoProcessFunction使用2实时对账(1)使用离线数据源(批处理)(2)使用高自定义数据源(流处理)二基于时间的双流Join1基于间隔的Join(1)正向join(2)反向join2......
  • 十八张图带你入门实时监控系统HertzBeat
    我们经常讲:研发人员有两只眼睛,一只是监控平台,另一只是日志平台。在对性能和高可用讲究的场景里,监控平台的重要性再怎么强调也不过分。这篇文章,我们聊聊开源实时监控告警系统HertzBeat赫兹跳动。1产品特色HertzBeat有两个非常鲜明的特色:强大的监控模版和无需Agent。1.1......
  • 《视频篇》java实现下载hls(m3u8+ts)实时流并进行合并mp4
    链接:https://blog.csdn.net/qq_41604890/article/details/130143355首先需要了解什么是HLS简单理解就是,m3u8文件存放着可供客户端播放TS片段简单一点说m3u8加密技术就是将原视频分割成n个.ts文件,并用一个key文件对每一个.ts文件加密,其中m3u8文件里面存储了key文件和所有的.t......